本人做了一个dll,在头文件中做如下定义:
#define DLLEXPORT extern "C" _declspec( dllexport )
DLLEXPORT void WINAPI OpenDlg(BOOL bOpen);
在cpp中加入
void WINAPI OpenDlg(BOOL bOpen)
{ AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDlgComm dlg;
dlg.DoModal();
}
在def文件中加入 OpenDlg @1
另建一个test工程,将它加入到同一个项目中去,设置该test项目依赖于dll项目。在testDlg.cpp中调用方法test()
CTestDlg::test()
{
OpenDlg();
}
设置active project为test项目,运行,出现如下错误信息:
Unhandled exception in test.exe(DLL.DLL):0XC0000005 :Access Violation
程序停在如下位置:
BOOL CWnd::InitControlContainer()
{
TRY
{
if (m_pCtrlCont == NULL)
m_pCtrlCont = afxOccManager->CreateContainer(this);
}
END_TRY
}
为什么?而且我的dll用re
#define DLLEXPORT extern "C" _declspec( dllexport )
DLLEXPORT void WINAPI OpenDlg(BOOL bOpen);
在cpp中加入
void WINAPI OpenDlg(BOOL bOpen)
{ AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDlgComm dlg;
dlg.DoModal();
}
在def文件中加入 OpenDlg @1
另建一个test工程,将它加入到同一个项目中去,设置该test项目依赖于dll项目。在testDlg.cpp中调用方法test()
CTestDlg::test()
{
OpenDlg();
}
设置active project为test项目,运行,出现如下错误信息:
Unhandled exception in test.exe(DLL.DLL):0XC0000005 :Access Violation
程序停在如下位置:
BOOL CWnd::InitControlContainer()
{
TRY
{
if (m_pCtrlCont == NULL)
m_pCtrlCont = afxOccManager->CreateContainer(this);
}
END_TRY
}
为什么?而且我的dll用re
解决方案 »
- 求助如何遍历对话框的按钮
- 照着网上写了个打开BMP图片的程序,弹出File:f:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl
- MSCOMM用COMBO BOX下拉框选择波特率!求比较详细的解释
- 在一个窗口中添加多个OPENGL控件无法正常显示?
- _UNICODE问题
- VC6。0 中调用SQLConfigDataSource创建数据源需要包含什么头文件?急!!!
- 关于获取文件名字的问题?
- CLISTBOX,自动往下滚动怎么实现,先谢谢了
- 关于计算网络地址的算法
- TabView(卡片视图)问题(200分)
- 线程中不能 UpdateData( FALSE) 吗?
- 如何在线程函数中操作对话框中的控件
"例如:EXE传一个结构指针给DLL,结构里有个CString的话,当DLL改为CString的值时就会有此类错误。"
to icelight:真的会吗?按理说loadlibrary以后,DLL 就被映射到这个进程的地址空间了阿。
这会儿没有VC环境,没法子试。
而共享非MFC对象时,我从未试过出问题。靠MFC。bljbljbljblj(LPTSTR)(LPCTSTR) :
如果DLL里的对话框完全不能显示就有可能是没有切换到DLL资源。AfxSetResourceHandle(hInst);
但楼主好象说了某些时候能显示对话框。