环境VS2008,unicode。
绑定控件变量
在程序的对话框中绑定控件变量正确使用,但在DLL的对话框中相同方法绑定控件变量编译可以通过,执行错误。
我把一个列表框绑定变量m_list,然后使用以下代码即可。void Ctest8Dlg::OnBnClickedButton1(){
m_list.AddString(_T("北京"));
}但是我在DLL的对话框中相同的方法使用编译没有问题,程序执行错误。请问是什么原因?
我已经添加了AFX_MANAGE_STATE(AfxGetStaticModuleState())。
错误后中断的返回位置:
第一次的中断返回位置:文件dbgrptt.c_CRTIMP void _cdecl _CrtDbgBreak(
    void
    )
{
    DebugBreak();
}                     //中断在此处第二次的中断返回位置文件dllinit.cpp#ifdef _AFX_OLE_IMPL
    // set module state for cleanup
ASSERT(AfxGetThreadState()->m_pPrevModuleState == NULL);  //中断到此处
    AfxGetThreadState()->m_pPrevModuleState =
    AfxSetModuleState(_AfxGetOleModuleState());
请各位高人帮助看下是怎么回事。

解决方案 »

  1.   

    楼主,具体详细一点,在DLL的对话框中相同方法绑定控件变量这个是什么意思?
      

  2.   

    我先用一个没有DLL的程序绑定控件变量来使用是没有问题的。
    但是我在MFC DLL中使用相同方法来绑定控件变量却不行。执行出错。
      

  3.   

    可能我说的不是很好。这是我在看雪论坛的问题贴,可能说得清楚些。
    http://bbs.pediy.com/showthread.php?t=113357
      

  4.   

    我写了个测试程序,程序什么都没做,只是调开一个MFC DLL。然后DLL中载入一个非模态对话框,增加一个组合框控件,关联一个变量,然后写入如下代码都出错。BOOL CTestDlg::OnInitDialog()
    {
    m_testcombo.AddString(_T("北京"));   //由中断知此处出错。
    return TRUE;
    }
      

  5.   

    楼主,不懂啊,什么叫做DLL 中载入非模态对话框啊?
      

  6.   

    已经解决了。BOOL CTestDlg::OnInitDialog()中没有调用基类,加上基类后就没有问题了。