gpt4 book ai didi

c++ - 在 Visual Studio 中调试由非托管 C++ 二进制文件加载的 .NET COM DLL

转载 作者:行者123 更新时间:2023-11-28 00:18:17 27 4
gpt4 key购买 nike

我正在使用 VS2010。我有一个用 C++ 编写的非托管 EXE,它使用 .NET COM 组件,它也是同一解决方案的一部分。我知道 COM 对象创建成功,因为 CoCreateInstance 没有错误返回。然而,组件符号未加载(我也注意到无法在 .NET 项目源文件中创建断点),因此我无法进入对象方法的代码。

我试图将 .NET DLL 的 PDB 复制到 EXE 的相同输出目录中,但也没有帮助。解决方案中的所有项目都是 x64, Debug模式设置为混合。

如果这很重要,DLL 是使用命令 regasm/codebase 注册的

有什么想法吗?谢谢。

最佳答案

是的,您必须启用托管调试。 Visual Studio 的一个问题(至少是 2008 和 2010 —— 不知道以后的版本)是您只能使用 32 位进程同时调试 native 代码和托管代码。对于 64 位进程,您必须调试一种类型或另一种类型,但不能同时调试两种类型。我想您可能能够启动 Visual Studio 的另一个实例并使用一个实例调试 native 并使用另一个实例进行管理。

在您的项目设置下,转到“配置属性”-“调试”页面。在右侧转到调试器类型并选择混合。

enter image description here

关于c++ - 在 Visual Studio 中调试由非托管 C++ 二进制文件加载的 .NET COM DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28871303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com