[编辑]
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。
非常感谢你。
答案 0 :(得分:2)
默认情况下,在C#项目调试中未启用非托管DLL,您必须专门启用它。
在C#项目属性中 - >调试你需要勾选“启用本机代码调试”框