首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CreateRemoteThread和局部变量解决方法

2012-03-14 
CreateRemoteThread和局部变量我只说重点。其他细节没贴。我用这个创建了一个远程线程:CreateRemoteThread (

CreateRemoteThread和局部变量
我只说重点。其他细节没贴。
我用这个创建了一个远程线程:
CreateRemoteThread (hprocess, 0, 0, (LPTHREAD_START_ROUTINE) p_code, 0, 0, 0);
p_code的内容是thread_watch函数,我已经复制好了。
thread_watch函数:
static DWORD WINAPI thread_watch (void*)
{
int a;
a = a;

return 0;
}

我一运行就出错。后来我改成这样:
static DWORD WINAPI thread_watch (void*)
{
return 0;
}
就没错了。

这分明说明局部变量在别的进程空间里不好使了。。这是为什么呢?局部变量不是分配在宿主进程空间的堆栈里吗?我的程序引用宿主进程空间的地址(就是我那个局部变量)也不行?

有点想不通呀。。。


[解决办法]
你得用release版,并关掉缓冲区检查,否则函数会用到全局变量

热点排行