读书人

GetWindowThreadProcessId 的有关问题

发布时间: 2013-04-20 19:43:01 作者: rapoo

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;

读书人网 >C++

热点推荐