使用VC写了一个包含对话框的dll,调用时用的以下代码
m_DataDllHandler = LoadLibrary("GlobalInfo.dll");
if (m_DataDllHandler == NULL)
{
MessageBox("加载GlobalInfo.dll失败");
return;
}
typedef CDialog* (*SHOWDIALOG)(const CString& strLimit, CWnd* pParentWnd, CRect rcWnd);
SHOWDIALOG ShowDialog;
CString strLimit = "1111111111";
CString strMSG;
ShowDialog = (SHOWDIALOG)GetProcAddress(m_DataDllHandler, "DepartmentDlgView");
if (ShowDialog == NULL)
{
::FreeLibrary(m_DataDllHandler);
m_DataDllHandler = NULL;
strMSG.Format("加载函数[%s]失败!", "DepartmentDlgView");
AfxMessageBox(strMSG);
return ;
}
m_pDlg = ShowDialog(strLimit, m_pWsEditView , rect);对话框能够正常显示出来,但是里面的Edit,comboBox都不响应任何消息了,不知道为什么?而且最奇怪的是我新建一个工程,也是用相同的代码调用,就一切正常。我现在怀疑是dll中的ID和主程序中的ID有冲突,不知道是不是这个原因,怎么解决,那位高手碰到过帮帮忙!
m_DataDllHandler = LoadLibrary("GlobalInfo.dll");
if (m_DataDllHandler == NULL)
{
MessageBox("加载GlobalInfo.dll失败");
return;
}
typedef CDialog* (*SHOWDIALOG)(const CString& strLimit, CWnd* pParentWnd, CRect rcWnd);
SHOWDIALOG ShowDialog;
CString strLimit = "1111111111";
CString strMSG;
ShowDialog = (SHOWDIALOG)GetProcAddress(m_DataDllHandler, "DepartmentDlgView");
if (ShowDialog == NULL)
{
::FreeLibrary(m_DataDllHandler);
m_DataDllHandler = NULL;
strMSG.Format("加载函数[%s]失败!", "DepartmentDlgView");
AfxMessageBox(strMSG);
return ;
}
m_pDlg = ShowDialog(strLimit, m_pWsEditView , rect);对话框能够正常显示出来,但是里面的Edit,comboBox都不响应任何消息了,不知道为什么?而且最奇怪的是我新建一个工程,也是用相同的代码调用,就一切正常。我现在怀疑是dll中的ID和主程序中的ID有冲突,不知道是不是这个原因,怎么解决,那位高手碰到过帮帮忙!
解决方案 »
- 如何在win32 application中使用CSocket发送文件,给个简单的例子
- 用vc++如何把手动IP地址变为自动地址?谢谢!!!
- 急!程序导致蓝屏!
- 关于库里包含图片资源的问题,各位DX进来指点一下,不胜感激!!
- 请问建立的activex空间在ie中怎么显示不出来
- 救急,手工编写chm文件可行吗? 急需chm文件格式。
- 函数itoa()为什么会返回int值的ASCII码?
- 高分请教用ATL做了一个带MFC支持的DLL问题?等待
- ◇◆◇ 毕业设计:Elite Listen & Response 英语听力训练软件 (enmity) II ◇◆◇
- 前面加CALLBACK的函数与普通函数有什么不同呀?
- 我用在C学MFC吗?
- 有关CEdit派生类的难题,请看!
AFX_MANAGE_STATE(AfxGetStaticModuleState());