调试从C#项目调用的C ++ DLL

时间:2018-04-06 08:47:40

标签: c# c++ debugging dll

[编辑]

PaulF发现的解决方案。我没想过在C#项目的Debug属性中启用本机代码的调试。

我正在开发一个C#项目,该项目使用C包装器调用C ++ DLL,以便在两个语言之间建立链接。 C#项目附加到一个进程(一个软件),我想调试我的DLL,就像我可以调试C#项目。当我在.cpp文件中添加断点时,当我使用F5启动调试时,断点无法访问。

此外,我有后期构建事件,包括将C#项目和C ++ DLL的.dll.pdb文件复制/粘贴到软件的正确文件夹中,以便能够使用它

有关信息,我使用以下代码在NativeImpot.cs中加载我的原生DLL。

public const string DllName = "SampleDll.dll";
public const CallingConvention DllCallingConvention = CallingConvention.StdCall;

[DllImport(DllName, CallingConvention = DllCallingConvention, CharSet = CharSet.Unicode)]
public static extern IntPtr AllocateHandle(int width, int height, int nFrame, string path, string filename);

在互联网上,我找到了很多解决方案,但任何工作。我是Visual的新手,再次关于Dll。

这是我的Visual解决方案的图像: enter image description here

非常感谢你。

1 个答案:

答案 0 :(得分:2)

默认情况下,在C#项目调试中未启用非托管DLL,您必须专门启用它。

在C#项目属性中 - >调试你需要勾选“启用本机代码调试”框