c - 使用/clr 支持编译的 C++-CLI 库调试 C 程序

标签 c visual-studio c++-cli

我有一个在 Visual Studio 中调试的现有 C 应用程序,并且我想访问其中的某些库函数。当我将库从 c++/cli 源代码编译为 .lib 时,我可以在有或没有 clr 支持(/clr 标志)的情况下编译它。
如果我使用 clr 支持编译库,并将其与应用程序的其余部分链接,则调试器将无法再停在使用 clr 支持编译的库中不存在的特定代码行处。
如果我在没有 clr 支持的情况下编译库并链接到那个库,则调试器一切正常。 我们需要在 clr 支持下编译这个库,并且我不想失去调试程序其余部分的能力。谁能告诉我为什么在链接到/clr 编译库而不是另一个库时我会失去调试能力?谁知道如何正确编译/链接以便我可以保持调试能力?

最佳答案

由于新的可执行文件包含 native 代码和托管代码的混合,因此您必须为其附加两种类型的调试器。在“调试”->“附加到进程...”中,我选择了要附加的进程以及调试器的类型s。在本例中,是托管 (v 4.0) 和 native 。

更详细地回答here .

关于c - 使用/clr 支持编译的 C++-CLI 库调试 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10217225/

相关文章:

c - 数组中包含的输入序列

c - 代码中的 dbx WUA 错误跟踪

python - 如何在 Python 中以 VS 作为 IDE 使用 OpenCV

c# - 更改发布版本格式

.net - 为什么在以下有关对象类的代码中,在 Point 后面使用 ^ 运算符

c - 如何重用 C 中的字符串而不让旧值出现在内存中?

c - 如何获取 Windows session 名称?

c - 如何将ULONG复制到PUCHAR中

c++ - 在更高版本的visual studio中运行vs2005 c++项目

c# - 使用 C++ dll 的 C# 应用程序中的堆栈溢出