如何解决在 MFC 项目中删除对某些 ActiveX 库的依赖的最简单方法?
我正在努力极大地简化旧的 MFC 应用程序,我想利用这个机会来消除对某个第三方 ActiveX 库的依赖,而这种依赖一直是令人头疼的问题。我首先只是尝试删除 cpp 代码中对这些控件的所有引用。它编译得很好,但是当安装在新计算机上时,如果安装项目中不包含库 .msm 文件,它就会崩溃。
现在的问题是我不知道项目中对这些对象的任何剩余引用在哪里,因此没有简单的方法来跟踪和删除它们。简单地使用 VS 中的 Find-functionity 只会返回我已经清理过的 cpp 文件中的结果,而不是 f.ex 中的任何控件实例。对话框资源文件。有没有办法在项目中搜索所有这些对象,或者在编译时检查它们,以便我可以使用编译错误来查看任何库对象保留在哪里?
解决方法
首先:CoCreateInstance
、CoGetClassObject
是创建 COM 对象的正常方式。应该很容易在这里设置断点或设置一个钩子来监控正在发生的事情。
接缝表明您的软件错误处理不当。否则,如果无法创建对象,应用程序应显示错误消息。
尝试调试....使用远程调试,即使崩溃转储也会引导您到代码位置。
最简单的方法:在您的开发机器中。尝试查看输出窗口并查看是否加载了任何旧的 ActiveX DLL。触发到创建这些对象中的任何一个的位置。
您可以在测试机器上进行远程调试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。