如何从我的c++ /CLI代码进入非托管c++库
How to step into unmanaged C++ library from my C++/CLI code
我的解决方案中有以下三个项目:1. c#库2. c++/CLI托管代码3.c++非托管代码
我确实在我的c#项目中检查了"启用非托管代码调试",并在Debug/Win32中构建了两个c++项目。然而,我不能进入非托管代码-当我F11调用任何非托管方法时,它会显示一些随机/错误的代码,然后退出。
因为我的单元测试通过了,所以我知道我的非托管代码确实执行了。
我错过了什么?
当我遇到这个问题时,它来自以下其中一个:
1)启用未检查的非托管代码调试。
2)将EXE构建为x64或任何CPU(他们说x64工作,但它没有)。我想你已经解决了这个问题。
3)"Just my code"被打开有时会导致非托管代码调试(工具,选项,调试器,Just my code)的问题
4) c++项目设置中的错误调试选项
5) PDB文件缺失、损坏或不匹配。您可以通过在调试器中运行时尝试在c++代码中设置断点来检查这一点。如果断点变成一个空心圆圈,则调试信息有问题。在调试模式下运行时还要检查输出窗口——它应该告诉您加载了哪些符号。
我看到这个问题不时地以"另一种"方式出现(即,从本地c++到c++/CLI),这通常是由调试器没有真正捡起它应该调试本机和托管代码引起的。
通常对我来说,将配置属性->调试中的调试器类型从"自动"设置为"混合"就可以解决问题。
相关文章:
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL
- C++/CLI System.AccessViolation在托管类中调用非托管函数时出现异常
- 是否可以在Linux上使用.Net Core 3.1创建C++/CLI代码的C#DLL
- C++ DLL(不是 CLI)是否可以调用 .NET Core 3.0 委托?
- VS2010 C++ 调试托管 (C++/CLI) DLL
- 如何将 C++/CLI 库链接到C++应用程序
- C++/CLI targetting .NET Core 3.1
- 模板函数签名在 C++/CLI 中解包
- C++/CLI 混合托管/本机 DLL 不起作用
- C++/CLI 和 C#/VB 与不安全和外部有什么区别?
- 是否有可能构建面向Linux和Windows的.Net Core C++ / CLI应用程序?
- DirectX 12 和 C++ CLI :无法使用IID_PPV_ARGS
- 如何为要在 C# 中使用的静态库创建 C++ 或 C++/CLI 包装器
- 将 C# 对象(包含静态对象成员)作为参数传递给 C++/CLI 程序
- C++/CLI -- 访问结构成员
- 如何将字符串从 C++/CLI 方法返回到调用它的非托管C++
- 如何将CLI类的函数指针作为参数传递给C++方法
- 用于LabView中使用的本机c++的c++/cli dll包装器
- C#WPF和C++/CLI以及C++在C++/CLI中添加外部库错误
- 在.NET Core 3.1中运行托管C++/CLI程序集时,映像格式错误