DLL出错

ytfrdfiw 2006-06-20 04:47:13
单击一个按钮,调用了DLL的接口(其实就是弹出一个对话框),关闭对话框,回到主对话框。此时点击任何非主对话框处,出现unhandled exception ...。在网上找了很久,未找到很好的方法,肯请指教。
...全文
151 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytfrdfiw 2006-06-21
  • 打赏
  • 举报
回复
顶一个,没人知道吗?
edrftgyh 2006-06-21
  • 打赏
  • 举报
回复
产生这种问题的原因太多了, 可能是调用方式不对, 也可能是dll内部本身的错误, 建议贴出原代码,不然很难知道是什么原因.
ytfrdfiw 2006-06-21
  • 打赏
  • 举报
回复
试过了,还是无效。
yzxandfcm 2006-06-21
  • 打赏
  • 举报
回复
关注......
yzxandfcm 2006-06-21
  • 打赏
  • 举报
回复
用我这个试试:
extern "C" __declspec(dllexport) void ShowDlg(void)
{
 AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDllDialog dllDialog;
 dllDialog.DoModal();
}

void CRegularDllCallDlg::OnCalldllButton()
{
 typedef void (*lpFun)(void);
 HINSTANCE hDll; //DLL句柄
 hDll = LoadLibrary("RegularDll.dll");
 if (NULL==hDll)
 {
  MessageBox("DLL加载失败");
 }

 lpFun addFun; //函数指针
 lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");
 if (NULL==pShowDlg)
 {
  MessageBox("DLL中函数寻找失败");
 }
 pShowDlg();
}

我这个都没有问题!
ytfrdfiw 2006-06-20
  • 打赏
  • 举报
回复
加了。
xwmpq 2006-06-20
  • 打赏
  • 举报
回复
AFX_MANAGE_STATE(AfxGetStaticModuleState());没?
ytfrdfiw 2006-06-20
  • 打赏
  • 举报
回复
加过了。
MapleInHG 2006-06-20
  • 打赏
  • 举报
回复
DLL里面弹对话框要注意,如果是MFC的,在DLL函数前加上:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
ytfrdfiw 2006-06-20
  • 打赏
  • 举报
回复
你的方法试了,没有,出现的异常不知在哪里,任何操作,只要不是对主对话框操作,就会出现异常。
xazl 2006-06-20
  • 打赏
  • 举报
回复
你那这个测试一下
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );

15,471

社区成员

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

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