본문 바로가기

Win32

(17)
MinGW 환경 C++ 에서 Thread 간편히 쓰기 위한 CustomThread 클래스! MinGW 으로 C++ 컴파일 해서 쓸시 , thread 처리를 위해 extern"C" 남발을 했던 기억이 있습니다. 아련한 기억인데 .. C++ 로 class 객체화를 하는데 있어 , thread 의 stdcall 함수 제작은 귀찮음의 걸림돌이 되었다고 생각 됩니다. 그래서 만들었던 것이 바로 이 CustomThread !!! 클래스 원형을 보면 다음과 같습니다. 그리고 실제 사용하는 입장에선 위의 클래스를 상속 받아, Setup 과 Execute(void*) 를 구현해 주면 되는 것 입니다. 예) 예제 소스는 CodeBlocks 로 만들어 졌습니다. 첨부 파일의 소스를 사용할 수 있으니 필요하신 분은 사용해 보시기 바랍니다. 본 소스는 공개로 만든 것 이므로 ,이 코드로 인해 발생하는 문제점은 제가 ..
DLL 에서 dllmain 이 호출 되지 않는다 !!! 언젠가 부터, 저는 DLL 을 minGW 에서 만듭니다. 하나의 소스로 Target 만 바꿔서 32bit, 64bit 모두 찍어 낼 수 있도록 환경을 만들어 쓰다 보니 이게 너무 편했던 것이죠. 그런데, 어느순간 제가 "정석" 을 따르고 있지 않음을 깨닫게 됩니다. 그 일이 이번에 DllMain() 함수가 불리지 않는다는 것. 이전에 C 코드를 짤떈 잘 쓰이던 것이 왜 이번에 이러지? 라는 의문이 든 것이 바로 이 결과 때문 입니다. 위 이미지만 봐서는 뭐가 문제인지 모를 것 입니다만 .. 아래 코드를 보겠습니다. 중요한 것은 바로 DllMain() 함수가 불리지 않는 다는것. 중복된 프로세스에서 사용되거나, 쓰레드에 사용될 경우 기본적인 처리를 해 줘야 할 DllMain() 이 호출 없이 사용된다는 점..
PWatch v 0.3.2.40 - 프로세스 덤프 프로그램. 특정 작업을 위해 만들어진 프로세스 덤프 프로그램 입니다. 멋진 상용 프로그램들이 꽤 많지만 가져다 쓸 여유가 안되는 관계로 직접 만들었습니다 -_-; 이 프로그램은 특정 프로세스를 열어서 (실행 중인 프로세스만 처리 합니다) 그 프로그램이 로드된 메모리와 힙 메모리 영역등을 모두 덤프 합니다. 초허접한 레지스트리 검색 기능도 있긴 합니다만, 이건 +알파 기능으로 만들어 놓은거라 쓸게 못되고 ... 간단히 현재 실행중인 프로세스를 덤프 하고자 하시는 분이라면 쓸 만한 정도 이겠습니다. 열기 버튼을 눌러 프로세스를 검색하여 찾아 낸 다음. 성공적으로 프로세스가 찾아 진 다면 아래 이미지 처럼 좀 더 자세한 내용을 볼 수 있습니다. 옆의 목록에서 ProcessID 와 ParentID 를 클릭 하시면, 해당 ..
지름도우미.win32 , version 0.4.29 build 113 버젼 업데이트로 이전글을 변경하여 기록 합니다. 카르퍼스키 백신이 제가 만든 프로그램을 무슨 트로이목마로 인식 한다고 합니다 -_-; 제가 만든 프로그램엔 트로이목마 코드가 없습니다. 알약에서도 이전에 오진이 나서 알약측에서 오진이라고 답을 받았는데 카르퍼스키 자체는(알약이 카르퍼스키 엔진을 씀에도) 이를 오진하고 있습니다. 제가 카르퍼스키 백신을 사용하지 않으므로 보고 할 수 가 없네요. 현재 저는 Microsoft Security Essential 64bit, Avast! Home Edition (32/64bit) , V3 Lite (32bit) 를 사용하고 있습니다. 모두 정식 집에서 개인적인 사용시 정식 라이센스 이지요. 다음 사항이 변경 되었습니다. windowsXP 에서 종료시 응답없음. 윈도..
GDI+ 를 minGW 에서 함께 사용하기. 기본적으로 Microsoft 에서 제공하는 GDI+ 사용에 필요한 Platform SDK 에는 minGW 에서 사용할 수 없는 asm 코드가 들어 있고 , 타 컴파일러를 배려 하지 않는 것들이 많이 들어 있습니다. 그래서 minGW 에서 GDI+ 를 사용하기 위해서는 많은 노가다가 필요한데 , 이를 위해 정리한 소스를 공유하고 자 합니다. 압축을 받아 풀면 포함 내용에 다음 두개의 폴더가 있습니다. GDIPlus4minGW : minGW 용 GDI+ 헤더 및 라이브러리 miniGW_GDIP01 : GDIPlus4minGW 를 이용한 테스트 어플리케이션 테스트 코드는 CodeBlocks 와 minGW 32bit 로 만들어 졌습니다. DEBUG 모드와 RELEASE 모두 다르게 세팅 되어 있습니다만, 단지 ..
Rage's HTTP server request tester , v1.4.1 이 프로그램은 HTTP 서버의 post 를 검사하기 위해서 만든 어플리케이션 입니다. 기존 1.3.x 대 보다 개선된 점들은 다음과 같습니다. - 덤프 된 내용을 출력하는 키를 F5 로 변경. - 덤프된 헤더 내용을 F6 키로 출력하도록 변경. - Windows Vista 지원. (UAC 경고 적용됨) 다운로드: 본 프로그램은 공개프로그램 으로서, 상용으로 사용 및 프로그램의 불법적인 수정 등은 국제법과 대한민국 법에 따라 위법사항입니다. 프로그램에 대한 개선사항이나 의문등은 메일이나 댓글로 남겨 주세요.
IWMPlayer 붙이기가 이렇게 어려운가 ... ㅠㅠ 요즘 이 문제 때문에 골머리가 매우 아프군요 . WindowsMobile6pro.용 어플 제작시 Win32.API 로 만들어진 윈도우에 COM 을 이용한 IWMPlayer 를 붙이기가 거의 불가능 해 보이는 듯 해서 골머리가 아픕니다. 제가 모르는 것이길 간절히 바랄 뿐 입니다만 .. COM 을 통해서 뭔가 하려면 MFC, ATL 을 복합적으로 사용해야만 하는 것인지가 관건 이군요. 되도록 MFC 는 피하고 싶습니다만 .. 과연 이게 방법이 없는 것인지 .. 답답합니다 ..
[Win32.C] 비트맵으로 폼(윈도우) 깍기. 이전에 Delphi 용으로 소개한 적이 있는 폼(윈도우 또는 다이얼로그 모두)을 깍는 방법을 소개 하고자 합니다. 단, 이방법은 코드상의 길이는 짧으나 속도가 느림을 감안해야 합니다. 이유는 바로 GetPixel() 함수 때문이지요. 개선해야 하는 것은 GetDIBits() 함수를 이용해서 원본으로 사용할 비트맵의 픽셀배열을 가져와서 처리 하는 방법이 가장 빠른 방법이 될 것으로 보입니다. 일단 간단히 소개하자면.. 다음 코드를 참조 해 주시기 바랍니다. HRGN BitmapToRegionEx(HBITMAP aBmpHandle, INT32 width, INT32 height, COLORREF aColor) { INT32x; INT32y; COLORREFaPixel = 0; HRGNtempRGN = NUL..