dll里的对话框一旦添加activeX控件就不能显示了,求高手指点,谢谢
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文件里声明导出。
这个问题卡了我三天了,卡的我无比郁闷,百度能搜到的帖子基本都看过,都解决不了。求大神指点,跪谢。