在Visual Studio 2017上检查非托管C ++对象/变量

因此,我有一个引用C ++ dll的C#桌面应用程序。该dll项目是由其他人开发的,无法在Visual Studio上进行编译,我将nmake与-DCMAKE_BUILB = Debug参数一起使用来生成 .dll和.PDB文件。我将文件复制到C#项目参考文件夹中,并在项目属性中启用了非托管代码的调试。因此,我实际上能够从dll调试非托管代码。我的问题是,我无法检查任何对象,也无法检查非托管代码端中的变量。当我将鼠标移到对象/变量上以及尝试添加间谍时, Visual Studio上下文检查器不会显示我需要从非托管代码中查看对象/变量的值,以确保它没有做错任何事情。

注意:我的一位同事已经在这里How add spy on Visual studio using unmanaged code打开了一个话题 但是遗憾的是,由于缺少详细信息,该线程已关闭,因此我尝试添加更多详细信息来描述问题。 请不要关闭这个

iCMS 回答:在Visual Studio 2017上检查非托管C ++对象/变量

在Visual Studio 2017上检查非托管C ++对象/变量

建议

更新1

请确保已在 VS Installer 中安装了 C ++开发 C#开发工作负载。这就是所有前提。

1),当您引用dll的路径时,请确保pdb文件已经存在于引用文件夹(您引用dll的文件夹)下,然后use DLLImport node到导入c ++函数。

2)工具->选项->调试->常规->选中选项使用的托管兼容模式

3)右键单击C#项目-> 属性 --->调试->选中选项启用本机代码调试

,请选中构建下的Allow unsafe code选项。

4),如果您的c ++ dll是使用x64平台构建的,则还应该使用x64平台来调试c#主项目。

此外,您可以参考this similar issue了解更多详细信息。

本文链接:https://www.f2er.com/2001333.html

大家都在问