MFC的regular dll,我从资源里加入了一个对话框,并生成一个类,但是,在导出函数里使用了;同时也往dll里加入一个自定义类(没有基于任何类),并也在导出函数里使用了,这个dll导出函数如下:
CInputDlg dlg;
dlg.DoModal();
CForTest test;
return test.GetInfo();
编译通过(两个自己加的类都极其简单的)。但在使用的时候,对话框并没有出现。但是它的返回值是正确的(也就是应该这个自定义类工作正常)。为什么会这样呢?
CInputDlg dlg;
dlg.DoModal();
CForTest test;
return test.GetInfo();
编译通过(两个自己加的类都极其简单的)。但在使用的时候,对话框并没有出现。但是它的返回值是正确的(也就是应该这个自定义类工作正常)。为什么会这样呢?
解决方案 »
- 请教vc2008中iterator的问题
- sprintf如何将数字输出成8位字符不足用0补齐
- 100分求一段简短的源代码
- 谁有windows2000编程技术内幕的随书源码?能提供的高分相送!
- 月工资3000+提成
- 用CREATEPROCESS打开一个DOS程序,并让它在后台工作,如何做?
- WINDOWS编程的高手来看看!
- 我菜鸟,驱动开发遇到的基础问题
- 请教: 需要起动执行上百个Thread的业务,是集中在一个Process中好,还是分散成几个Process好?
- 关于文件操作的一个问题
- 如何隐藏list中的某一行?
- 用 CDialog t; t.Domodal()显示一个modal对话框,我现在需要当这个对话框在屏幕上显示完后,我想把这个Dialog用拷屏的方法截下来,问题是
根据上面网址,加了句AFX_MANAGE_STATE(AfxGetStaticModuleState());就可以了
为什么要用这句啊?
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CInputDlg dlg;
dlg.DoModal();
CForTest test;
return test.GetInfo();
}
此函数在堆栈上构造AFX_MODULE_STATE类的实例pModuleState并对其赋值后将其返回。在AFX_MODULE_STATE类的构造函数中,该类获取指向当前模块状态的指针并将其存储在成员变量中,然后将pModuleState设置为新的有效模块状态。在它的析构函数中,该类将存储在其成员变量中的指针还原为存贮的前一个模块状态。 AFX_MANAGE_STATE( AFX_MODULE_STATE* pModuleState )
该宏用于将pModuleState(指向包含模块全局数据也就是模块状态的AFX_MODULE_STATE结构的指针)设置为当前的即时作用空间中(the remainder of the immediate containing scope)的有效模块状态。在离开包含该宏的作用空间时,前一个有效的模块状态自动还原。AFX_MANAGE_STATE(AfxGetStaticModuleState());
是自动切换当前模块状态,也可以通过使用AfxGetResourceHandle和AfxSetResourceHandle来手动切换当前模块状态。