我用普通的MFC的DLL,并在资源中生成了一个对话框资源,然后为该对话框派生了类CXXdlg dlg,最后我在该DLL 中的导出函数中dlg.DoModle(在dlg.DoModle 之前 AFX_MANAGE_STATE ( AfxGetStaticModuleState () )),但是一调用该导出函数就有断言错误,调试发现,Debug版本下dlg = 0x00000000;发行版本下可以通过,以上仅是在2000下的结果。如果在98下,Debug版本情况一样,发行版本下,该对话框会一扇而过。恳请高手们帮帮忙,苦闷好久了。
解决方案 »
- 一个类定义的问题
- 请问:怎样获得窗口的后代窗口句柄?
- “Setup*”api在98和2k下有什么不同?可都是api啊!
- 哪位大侠能讲讲如何判断一个网址是否可以连接?(重发)
- 如何实现将屏幕上的一部分图像拷屏并保存为bmp图像呢?
- 简单的问题
- 知道吗?高程题型变了.
- IDispath error #3092是什么错误
- 带表格、图片的文字编辑界面的实现
- 是什么限制了我们中国程序员的编程能力?
- 讨厌自己,放分,总是忘记最重要的是什么,老是做一些无关紧要的事情而浪费时间。
- 请教jiangsheng(蒋晟.MSMVP2004Jan):为什么我的程序停在HRESULT hr = g_lpHTMLDocument2->get_all(&pForm);不动?
AfxSetRecourceHandle(::GetModuleHandle(your.dll));
http://www.vckbase.com/code/downcode.asp?id=1783
int InputPin_show(char* pin)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
int i;
CINPUT InputPin;
i=InputPin.DoModal();
}
************************************
在Dll中创建对话框并调用
作者:freedk下载本文示例代码1、第一步创建一“MFC AppWizard (dll)”工程,接下来选择“Regular Dll using shared MFC DLL”,点击“Finish”。2、添加一对话框资源到工程中,从菜单中选择Insert->Resource,添加一“Dialog”
选择“New”,至此对话框已添加到DLL工程中。3、为对话框添加一新类,如:CTest,基类为CDialog。4、在MFCDLL.cpp中(因创建的工程为MFCDLL)添加接口函数:extern "C" __declspec(dllexport) void Show(){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); CTest test; test.DoModal ();}别忘了在文件中添加: #include "Test.h":),大功告成,编译吧! 5、用VC新建一对话框工程,在一按钮点击事件中添加如下代码: typedef void (WINAPI * TESTDLL)(); HINSTANCE hmod;hmod = ::LoadLibrary ("mfcdll.dll");if(hmod==NULL){ AfxMessageBox("Fail");}TESTDLL lpproc;lpproc = (TESTDLL)GetProcAddress (hmod,"Show");if(lpproc!=(TESTDLL)NULL) (*lpproc)();FreeLibrary(hmod);****************************************