我在调试同时包含 native ANSI C DLL 项目和托管 C#/WPF 应用程序项目的解决方案时遇到一些问题。
我使用 LoadLibrary/GetProcAddress Win32 API 函数调用 DLL 导出的函数(DllImport 属性不适用于我的程序,因为 DLL 是由用户选择的)。这两个项目都是使用调试配置构建的。将 native DLL 复制到 C# 程序的 bin/Debug 目录中。当我调试 C# 项目时,无法单步执行 native 代码。
有没有办法进入 native 代码?
当我使用 C# 程序调试 DLL 项目时它可以工作,但随后我无法进入托管代码...
我使用的是 Visual Studio 2010 Professional 和 Visual Studio 2010 Ultimate。
LG, 多米尼克
最佳答案
在您的 C# 项目中:“项目 + 属性”、“调试”选项卡,勾选“启用非托管代码调试”。从托管代码单步执行到非托管代码是行不通的。您需要在要调试的DLL函数上设置断点。
关于调试 native (ANSI C DLL)和托管(C# 汇编)代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3564591/