CMFCLinkCtrl 在 VC++ 中与 dll 一起使用时会引发运行时错误

Posted

技术标签:

【中文标题】CMFCLinkCtrl 在 VC++ 中与 dll 一起使用时会引发运行时错误【英文标题】:CMFCLinkCtrl throws runtime error when it is using with dll in VC++ 【发布时间】: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 中失败是未使用的接缝=???是吗? 【参考方案1】:

有时我删除了代码

CWinApp theApp

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

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

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

【讨论】:

用这篇文章下载了 PDB 下载器 - 感谢支持***.com/questions/37391637/…

以上是关于CMFCLinkCtrl 在 VC++ 中与 dll 一起使用时会引发运行时错误的主要内容,如果未能解决你的问题,请参考以下文章

VC++中CString里的find函数怎么使用

flow control

PHP 警告:“vcruntime140.dll”14.0 与第 0 行未知中与 14.10 链接的此 PHP 版本不兼容

从 VB6 调用一个简单的 VC DLL

swift presentViewController 以编程方式在destinationVC VDL中找到nil

Windows下libjpeg-trubo-1.5.3编译