如何从我的c++ /CLI代码进入非托管c++库

本文关键字:c++ CLI 我的 代码 | 更新日期: 2023-09-27 18:04:12

我的解决方案中有以下三个项目:1. c#库2. c++/CLI托管代码3.c++非托管代码

我确实在我的c#项目中检查了"启用非托管代码调试",并在Debug/Win32中构建了两个c++项目。然而,我不能进入非托管代码-当我F11调用任何非托管方法时,它会显示一些随机/错误的代码,然后退出。

因为我的单元测试通过了,所以我知道我的非托管代码确实执行了。

我错过了什么?

如何从我的c++ /CLI代码进入非托管c++库

当我遇到这个问题时,它来自以下其中一个:

1)启用未检查的非托管代码调试。

2)将EXE构建为x64或任何CPU(他们说x64工作,但它没有)。我想你已经解决了这个问题。

3)"Just my code"被打开有时会导致非托管代码调试(工具,选项,调试器,Just my code)的问题

4) c++项目设置中的错误调试选项

5) PDB文件缺失、损坏或不匹配。您可以通过在调试器中运行时尝试在c++代码中设置断点来检查这一点。如果断点变成一个空心圆圈,则调试信息有问题。在调试模式下运行时还要检查输出窗口——它应该告诉您加载了哪些符号。

我看到这个问题不时地以"另一种"方式出现(即,从本地c++到c++/CLI),这通常是由调试器没有真正捡起它应该调试本机和托管代码引起的。

通常对我来说,将配置属性->调试中的调试器类型从"自动"设置为"混合"就可以解决问题。