반응형
빌어먹을 VC6은 OpenProcess API를 지원하지 않는다. 따라서 Thread ID를 HANDLE로 변환시킬 방법이 없는데 검색 결과 Native API(=공개되지 않은 Kernel API)를 사용하여 HANDLE을 얻어와야 한다.
원문 :
http://www.codeguru.com/forum/showthread.php?t=329867
참고 (Native API)
- Native API 설명 : http://en.wikipedia.org/wiki/Native_API
- Native API 정리 : http://undocumented.ntinternals.net/
* Native API는 비공식 API이므로 MS가 사전 동의나 공지없이 Interface 등을 변경할 수 있다.
원문 :
http://www.codeguru.com/forum/showthread.php?t=329867
typedef DWORD (WINAPI*OTFUNC)(HANDLE*,DWORD,void*,void*); HANDLE OpenThread_VC6(DWORD dwThreadID, BOOL bInherit) { HANDLE hThread = NULL; DWORD struct1[] = {0x18, 0, 0, 0, 0, 0}; DWORD struct2[] = {0,dwThreadID}; HMODULE hLib = LoadLibrary(TEXT("ntdll.dll")); OTFUNC OpenThatNTThread = (OTFUNC)GetProcAddress(hLib, TEXT("NtOpenThread")); struct1[3] = bInherit; OpenThatNTThread(&hThread, THREAD_ALL_ACCESS, struct1, struct2); FreeLibrary(hLib); return hThread; }
참고 (Native API)
- Native API 설명 : http://en.wikipedia.org/wiki/Native_API
- Native API 정리 : http://undocumented.ntinternals.net/
* Native API는 비공식 API이므로 MS가 사전 동의나 공지없이 Interface 등을 변경할 수 있다.
반응형
'Game Dev > Work Log' 카테고리의 다른 글
Gwen Library 설치 (0) | 2012.12.08 |
---|---|
Horizon Occlusion (0) | 2011.07.06 |
GPU Gems3 - Vegetaion Procedural Animation and Shading in Crysis (0) | 2011.07.01 |
Rain Post Processing (0) | 2011.07.01 |