从DLL导出非模态对话框的问题

hyan 2004-11-19 08:47:56
我在一个MFC扩展DLL中写了一个CDialog类,在应用中导出该类,并按如下步骤
创建显示,但总是不行,请帮忙解决为盼!

CProgressDlg* pDlg = new CProgressDlg(); \\CProgressDlg是从DLL导出的一个类
pDlg->Create(); \\执行报错
pDlg->ShowWindow(SW_SHOW);
...全文
132 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyan 2004-11-26
  • 打赏
  • 举报
回复
我在dll里面写了一个导出函数,但是在链接时报错如下:

warning LNK4006: _DllMain@12 已在 Dialog.obj 中定义;已忽略第二个定义

fatal error LNK1169: 找到一个或多个多重定义的符号

whwjn 2004-11-21
  • 打赏
  • 举报
回复
up
DWDLL 2004-11-21
  • 打赏
  • 举报
回复
楼上正解
DentistryDoctor 2004-11-19
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3296/3296255.xml?temp=.7917139
DentistryDoctor 2004-11-19
  • 打赏
  • 举报
回复
一,Create时需要指定IDD
二,对话框资源在DLL中还是有EXE中?AfxSetResouceHandle,或是将DLL加入到EXE的资源链中。
kingzai 2004-11-19
  • 打赏
  • 举报
回复
http://dev.csdn.net/Develop/article/25/25358.shtm
leky2000 2004-11-19
  • 打赏
  • 举报
回复
CProgressDlg* pDlg = new CProgressDlg; \\CProgressDlg是从DLL导出的一个类
pDlg->Create(CProgressDlg::IDD); \\执行报错
pDlg->ShowWindow(SW_SHOW);

handwolf 2004-11-19
  • 打赏
  • 举报
回复
方法一)

在dll里面写一个导出函数
__declspec(dllexport) CProgressDlg* CreateDlg(CWnd *pParent=NULL)
{
 AFX_MANAGE_STATE(AfxGetStaticModuleState()) ;
CProgressDlg* pDlg = new CProgressDlg;
pDlg->Create(CProgressDlg::IDD);
return pDlg ;
}

这样在exe工程中就可以调用这个函数来创建对话框了!
楼主可以试试!
hyan 2004-11-19
  • 打赏
  • 举报
回复
对话框资源在DLL中,我是静态链接的,Domodule正常啊。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧