奇怪了,Dll中无法弹出对话框

jvy 2008-12-11 03:10:51
我写了一个DLL,里面有一对话框显示,在上面加入Windows常用控件没问题,但我加入一个第三方控件对话框就弹不出来了。
和控件应没多大关系,加入MsDgridCtrl也一样
...全文
100 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jvy 2008-12-11
  • 打赏
  • 举报
回复
谢谢了,就是没初始化造成的,结贴散分
oyljerry 2008-12-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jvy 的回复:]
引用 4 楼 jvy 的回复:
要说跟本就弹不出来和环境有关,可是只要没那控件还是正常的
不解


不太明白,我就只是把那控件拖到窗体上,什么没做,不成,删掉就可以
[/Quote]
引入了控件,就会需要初始化...
Learn-anything 2008-12-11
  • 打赏
  • 举报
回复
看看,mark一下
ilovedrv 2008-12-11
  • 打赏
  • 举报
回复
可能是资源有冲突

HINSTANCE save_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(g_dllInstance); // g_dllInstance是动态库资源句柄

// 调用你的对话框创建和显示

AfxSetResourceHandle(save_hInstance);
stivenjia 2008-12-11
  • 打赏
  • 举报
回复
RichEdit属于一种OLE组件
使用OLE组件首先需要初始化COM运行环境ConInitialize();或者AfxOleInit();
使用此InitCommonControls api确定常用控件扩展库已经加载。
jvy 2008-12-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jvy 的回复:]
要说跟本就弹不出来和环境有关,可是只要没那控件还是正常的
不解
[/Quote]

不太明白,我就只是把那控件拖到窗体上,什么没做,不成,删掉就可以
Pipi0714 2008-12-11
  • 打赏
  • 举报
回复
LoadLibrary加载该控件的dll,向Richedit类似

测试一下
stivenjia 2008-12-11
  • 打赏
  • 举报
回复
估计没初始化OLE
zhoujianhei 2008-12-11
  • 打赏
  • 举报
回复
在DLL中加入
void InitDLL()
{
new CDynLinkLibrary(xxxDLL);
}
并导出

在APP的InitInstance()中调用。

oyljerry 2008-12-11
  • 打赏
  • 举报
回复
看初始化的代码,是不是控件初始化失败了
jvy 2008-12-11
  • 打赏
  • 举报
回复
要说跟本就弹不出来和环境有关,可是只要没那控件还是正常的
不解
jvy 2008-12-11
  • 打赏
  • 举报
回复
没单步调,那个exe是个发布版,还得单独写个exe
但是把那控件去掉一切正常
etz2008 2008-12-11
  • 打赏
  • 举报
回复
可能是你的编辑环境一时有问题吧~
快乐鹦鹉 2008-12-11
  • 打赏
  • 举报
回复
有没有调试一下,对话框类的初始化是否正确

15,471

社区成员

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

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