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

关于VC++在新线程中CreateDialog引发非法操作内存异常

2013-09-07 
关于VC++在新线程中CreateDialog引发非法操作内存错误。代码:UINT WINAPI BeginDebug(void *Param){MainHwn

关于VC++在新线程中CreateDialog引发非法操作内存错误。
代码:

UINT WINAPI BeginDebug(void *Param)
{
    MainHwnd = CreateDialogW(DllBase,MAKEINTRESOURCE(MAIN_DIALOG),NULL,DlgProc);
    return 1;
}

BOOL LaunchDebugger(long LaunchParam)
{
    ProcHandle = _beginthreadex(NULL,0,&BeginDebug,NULL,0,&ProcID);
    if (ProcHandle == 0 || ProcHandle == -1)
        return FALSE;
    else
        return TRUE;
}


这样子写的话,新线程倒是能成功创建,但是一执行到CreateDialog,就会崩溃,看地址应该是user32出的问题。
如果不用新线程CreateDialog,直接CreateDialog,就是好的。也不会崩溃,这是什么原因啊?  vc++ 线程
[解决办法]
多线程同步的问题。在C#中一般用委托来解决,C/C++中一般使用消息或者回调函数来解决。

热点排行