调试动态加载的C++/来自C++;应用 我是VisualStudio.C++中的C++新手

调试动态加载的C++/来自C++;应用 我是VisualStudio.C++中的C++新手,c++,visual-studio,visual-studio-2012,c++-cli,dynamic-loading,C++,Visual Studio,Visual Studio 2012,C++ Cli,Dynamic Loading,我开发了一个VS解决方案,包括: C++/CLI DLL项目(a) 一个C++控制台项目(b),它动态加载一个使用 LoadLibraryW < /C> > /LI> 当我运行B时,我还需要在A内部进行调试。但是A代码中的断点不起作用,它们有一个警告标志符号,表示不可能在这里中断 我尝试了很多设置,但都不起作用。这不是一件容易的事吗?谢谢 多亏了@HansPassant,解决方案是设置以下属性: 项目>属性>调试>调试器类型=混合 工具>选项>调试>常规,勾选“使用托管兼容性模式” Lo

我开发了一个VS解决方案,包括:

  • C++/CLI DLL项目(a)
  • 一个C++控制台项目(b),它动态加载一个使用<代码> LoadLibraryW < /C> > /LI>
当我运行B时,我还需要在A内部进行调试。但是A代码中的断点不起作用,它们有一个警告标志符号,表示不可能在这里中断


我尝试了很多设置,但都不起作用。这不是一件容易的事吗?谢谢

多亏了@HansPassant,解决方案是设置以下属性:


  • 项目>属性>调试>调试器类型=混合
  • 工具>选项>调试>常规,勾选“使用托管兼容性模式”

LoadLibrary
无法神奇地启用托管代码,需要先加载并初始化CLR。

项目>属性>调试>调试器类型=混合。在工具>选项>调试>常规中,勾选类似于“托管兼容性模式”的选项。LoadLibrary不能神奇地启用托管代码,需要先加载并初始化CLR。使用COM或自定义CLR主机。或者如果你真的,真的,真的必须使用一个u declspec(dllexport)入口点。你不必,例外情况很难处理。@HansPassant这不是你第一次救我!!:)非常感谢你。将调试器类型设置为“混合”解决了此问题。已选中“使用托管兼容性模式”。你能不能把你的评论作为回答,这样我就可以接受了?无论如何,我使用uu declspec(dllexport),因为否则我无法获取我的DLL方法的procAddress。。。我不知道其他的方法…@HansPassant好的,我会出版它。。。无论如何,我无法理解有人对meI在这两个项目上的set-Debuggermode和set-Managed Compat投了反对票。“需要先加载clr”是什么意思?