我有一些本地C DLL,它们是从托管C++类库(“Rem”)中调用的。在“Rem”类库中,我有一个 native C++类(api)和一个托管C++类(API)。
暂时从C#控制台应用程序调用托管类(API)(稍后将在Web应用程序中使用)。
调试时,我可以逐步浏览 native 代码。
我的问题是,当我调试时,除了本地声明的简单类型之外,我看不到任何变量的值。
函数参数在调试器中不可用,如果我尝试将它们添加为Watch,它只会显示“错误:标识符'schema_name'超出范围”('schema_name'是变量名)
在快速监视和监视窗口中,任何结构都只显示值“{...}”。
如果我尝试向结构中的字段添加监视,则会得到“错误:'entryList.numItems'不存在”的值
我尝试过的东西:
工具->选项->调试->常规->托管C++兼容模式,那么我根本无法进入代码(没有为断点加载符号)
关于我在做什么错的任何建议吗?
最佳答案
我猜您正在使用Visual Studio 2012 Update2。在这种情况下-这是Update 2的一个已知错误:
https://connect.microsoft.com/VisualStudio/feedback/details/783004/children-cannot-be-evaluated-on-c-cli-after-vs2012-update-2
但是请小心,卸载此Update 2的“解决方法”将使您的Visual Studio损坏,如此错误报告所示(是的,Update 2已损坏):
https://connect.microsoft.com/VisualStudio/feedback/details/785396/uninstalling-vs2012-update-2-and-repair-of-vs-results-in-atl-files-missing
如果您没有使用Update 2,这可能不是正确的答案,但是它可以帮助使用Update 2确实遇到此问题的其他人。