GetWindowThreadProcessId 的问题
本帖最后由 xilao2 于 2013-04-10 01:51:26 编辑
DWORD processid;
::GetWindowThreadProcessId(gameh,&processid);
//打开指定进程
HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,false,processid);
这段代码没问题~
DWORD *processid;
::GetWindowThreadProcessId(gameh,processid);
//打开指定进程
HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,false,*processid);
这样子就有问题了~运行的时候出错,XXXX引用的内存0xccccccccc内存,该内存不能为written
两点了~实在想不明白了~求指点~
[解决办法]
DWORD?*processid;这个只是声明了一个指针,并没有分配内存,调用GetWindowThreadProcessId时写入数据显然是错的。
DWORD processid;声明了一个变量,在栈上分配了内存,所以写入时没错。
另外
DWORD?*processid = new DWORD;
也是可以的
[解决办法]
DWORD *processid = new DWORD;
之后不用processid时别忘了
delete processid;