65,186
社区成员




#include <windows.h>
#include <process.h>
#include <stdio.h>
#include <iostream>
using namespace std;
HANDLE g_Handle =NULL;
unsigned __stdcall thread_func(void* lpParam)
{
BOOL ret = DuplicateHandle(GetCurrentProcess(),GetCurrentThread(),
GetCurrentProcess(),&g_Handle,DUPLICATE_SAME_ACCESS,FALSE,0);
if(!ret)
{
cout<<"DuplicateHandle Failed "<<GetLastError()<<endl;
}
Sleep(10000);
return 9;
}
int main()
{
HANDLE hThread = (HANDLE)_beginthreadex(NULL,0,thread_func,NULL,0,NULL);
CloseHandle(hThread);
int j = 10;
while(j--)
{
if(g_Handle)
{
DWORD code;
BOOL ret = GetExitCodeThread(g_Handle,&code);
if(ret)
{
cout<<" ExitCode: "<<code<<endl;
}
else
{
cout<<"GetExitCodeThread return FALSE ErrorCode:"<<GetLastError()<<endl;
}
}
else
{
cout<<"g_Handle Is NULL"<<endl;
}
Sleep(1000);
}
cout<<"press any key to continue..."<<endl;
getchar();
}