dll里的对话框一旦添加activeX控件就不能显示了,求高手指点,谢谢

flyingfluff 2018-07-16 12:52:46
dll中的对话框里一加入activeX控件,就不能显示了,调用DoModal之后都没能进入对话框的OnInitDialog函数。去掉activeX控件后一切正常。
主工程基于单文档的,勾选了activeX支持,AfxOleInit、CoInitialize、AfxEnableControlContainer这几个函数都调用过了,是自动生成的代码。在view类里添加菜单项的响应函数,函数里调用dll中的input_init函数来显示dll里的对话框,代码如下:
typedef void (WINAPI * TESTDLL)(void);
HINSTANCE hmod;
hmod = ::LoadLibrary ("Input_SerialPort.dll");
if(hmod==NULL)
{
AfxMessageBox("Fail");
}
TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress (hmod,"input_init");
if(lpproc!=(TESTDLL)NULL)
(*lpproc)();

MFC dll工程里的接口函数如下:
void input_init(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDialogOpen dlg;
dlg.DoModal();
}
该函数在def文件里声明导出。

这个问题卡了我三天了,卡的我无比郁闷,百度能搜到的帖子基本都看过,都解决不了。求大神指点,跪谢。
...全文
110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mikeiii 2019-06-11
  • 打赏
  • 举报
回复
牛逼
flyingfluff 2018-07-16
  • 打赏
  • 举报
回复
我去,太牛B了,一句话搞定了。百度了无数帖子都没有人提这个。
太感谢了,100分归你了。

引用 1 楼 zgl7903 的回复:
MFC dll工程里的 CXXDLLApp::InitInstance 中调用 AfxEnableControlContainer( );
zgl7903 2018-07-16
  • 打赏
  • 举报
回复
MFC dll工程里的 CXXDLLApp::InitInstance 中调用 AfxEnableControlContainer( );

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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