资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

调用Dll里的对话框为何出不来

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

各位大侠,我用一个exe调用一个dll里的对话框,不知道为什么对话框无法显示。在dll里写了一个接口函数。在这个函数里调用了这个对话框。然后在exe中调用这个接口函数。不知道为什么对话框显示不出来。郁闷~~~~~有人知道是什么原因吗?都是staticlib链接的。

网友回答:

发表者:kpld8888

跟踪,看看是调用哪个函数出了问题?

发表者:bohut

http://www.vckbase.com/document/viewdoc/?id=543

发表者:eterblue

你在dll里调试看一下,把出问题的代码给出来吧,就是创建对话框那部分。

发表者:kugou123

帮贴出来,呵呵:  
   
  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);  
   
    6、试试看,是不是DLL中对话框显示出来了:)  
   
  测试环境:VC6.0+Win2000


 

 
热门推荐笔记本: IBM笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved