【问题标题】:CMFCLinkCtrl throws runtime error when it is using with dll in VC++CMFCLinkCtrl 在 VC++ 中与 dll 一起使用时会引发运行时错误
【发布时间】:2017-05-04 07:30:47
【问题描述】:

我在我的模态对话框应用程序中放置了一个 CMFCLinkCtrl -(用于在对话框框架中显示链接的控件),它运行良好。 在设置 SetURL("www.google.com") 后,它可以调用它。

当我在 dll 中执行相同操作时(对话框是 dll 的一部分)并且当用户单击控件时,它会引发运行时异常,我无法对其进行调试。

我有两个问题, 我们可以在基于对话框的 dll 中使用 CMFCLinkCtrl 控件吗? 如果是,如何调试和发现问题?

错误图片:

谢谢, 萨拉瓦娜

【问题讨论】:

  • “我无法调试它” - 为什么?有人威胁您不要点击Break按钮?您取消引用空指针。我们无能为力。
  • 我可以这样做,它会将我带到我调用 DoModal() 的地方,而不是异常所在的确切位置。就像当我单击 Lunk url 按钮时,它必须调用 shellexecute 命令并打开一个带有我在 SetURL() 中设置的链接的窗口...
  • mfc140u.dll 中引发了异常。您拥有该模块的完整源代码。请开发人员设置您的开发机器。
  • 我正在使用 VS2015 update1 - redist 是 14.0.23506,我在哪里可以下载 14.0.24720.00 的 redist
  • 我使用了 PDBDownloader 并获得了 mfc140u.dll 的 pdb 文件,并且能够加载整个调用堆栈...在 hWnd 中失败是未使用的接缝=???是吗?

标签: visual-c++ dll mfc modal-dialog controls


【解决方案1】:

有时我删除了代码

CWinApp theApp

来自 dll 实现,因为我没有使用它。这就是这个错误背后的原因。当我将其添加回来时,它能够调用 URL。

正如我所提到的,它在下面的行中受到打击,只是更多地探讨了 AfxGetApp() 失败的原因并找到了这个原因。

void CCmdTarget::BeginWaitCursor() AfxGetApp()->DoWaitCursor(1)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多