在 MSDN 上查了半天资料,查到一个 GetProcessIdOfThread 函数,可是这个函数只能在 Windows Server 2003 上使用。谁知道在 Win2K/XP 下怎样实现?注:目标线程不是 GUI 线程,没有窗口,所以也不能使用 GetWindowThreadProcessId 函数。
解决方案 »
- error 求解答
- 结构体初始化问题
- 再继续问个ogre游戏引擎的问题,希望这次有高人相助
- C++ Builder6.0程序编译通过但不能运行?
- visual assist_1555 如何把{} 改成JAVA 那种{}风格啊
- 报内存错误
- 文件夹的个数计算问题?
- 请教:为什么我的.cpp文件会丢失
- 如何降低一个进程的运行优先级别?
- EnumWindows的问题?
- Server use CSocket, CSocketFile and CArchive, Receive and send data. How to use socket_api send and receive data with server?
- CreateThread函数抱错(解决立即结分!)
DWORD __stdcall GetProcessIdOfThread(DWORD dwThreadId)
{
HANDLE hSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,NULL);
if(hSnap == NULL)
{
return NULL;
} DWORD dwProcessId = NULL;
THREADENTRY32 threadInfo;
threadInfo.dwSize = sizeof(THREADENTRY32);
BOOL bLoop = ::Thread32First(hSnap,&threadInfo);
while(bLoop)
{
if(threadInfo.th32ThreadID == dwThreadId)
{
dwProcessId = threadInfo.th32OwnerProcessIDl;
break;
}
bLoop = ::Thread32Next(hSnap,&threadInfo);
}
::CloseHandle(hSnap);
return dwProcessId;
}
DWORD NumberOfHeaps, // maximum number of heap handles
PHANDLE ProcessHeaps // buffer for heap handles
);