【发布时间】:2011-08-14 15:51:30
【问题描述】:
在这个小程序中,GetCurrentProcess()为什么返回-1?
int _tmain(int argc, _TCHAR* argv[]) {
HANDLE h = GetCurrentProcess(); // ret -1
printf("0x%x\n",(DWORD)h);
return 0;
}
怎么了?
在Kernel32.GetCurrentProcess 我看到了这个:
OR EAX,FFFFFFFF ; EAX - ?
RETN
【问题讨论】:
-
这是一个自引用的特例。如果出于某种原因(可能用于 IPC)需要它,您可以使用
OpenProcess (...)获取代表您的流程的实际HANDLE。