Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VS即时窗口”;“标识符未定义”;查询带有命名空间的DLL函数时_C++_Visual Studio_Immediate Window - Fatal编程技术网

C++ VS即时窗口”;“标识符未定义”;查询带有命名空间的DLL函数时

C++ VS即时窗口”;“标识符未定义”;查询带有命名空间的DLL函数时,c++,visual-studio,immediate-window,C++,Visual Studio,Immediate Window,我尝试从VS2017即时窗口内部调用一些DLL导出函数。C++头中的函数看起来如下: namespace ma { bool MODEL_DECLSPEC ClearParameter(); bool MODEL_DECLSPEC GetResult(); : } 但是,当我在代码中的断点处停止并在即时窗口中键入时 ma::GetResult() 它回来了 identifier "ma" is undefined 我可以在“std”命名空间中调用函数,

我尝试从VS2017即时窗口内部调用一些DLL导出函数。C++头中的函数看起来如下:

namespace ma
{
    bool MODEL_DECLSPEC ClearParameter();
    bool MODEL_DECLSPEC GetResult();
          :
}
但是,当我在代码中的断点处停止并在即时窗口中键入时

ma::GetResult()
它回来了

 identifier "ma" is undefined
我可以在“std”命名空间中调用函数,但不能在我自己的命名空间中调用


编辑:我做了更多的测试,当断点位于DLL中的“ma”命名空间范围内时,立即窗口会很好地解释“ma”命名空间,并调用导出的DLL函数。这对调试来说是相当有限的,所以我肯定我遗漏了什么?

发现它与名称空间无关。本机调试器不会查看其当前模块的外部:


这里讨论了一些变通方法

胡乱猜测-这些符号是否在库中公开?如果没有,也许它们被完全移除了。@hauron,谢谢你的想法。是的,它们是出口的。(我在DLL上做了一个“垃圾箱/出口”,可以看到导出的函数。)这就是你的意思吗?不确定这是一个bug,他们没有在调试程序中建立一个C++编译器。通过使用“帮助”>“发送反馈”>“报告问题”,向了解情况并能够解决问题的人说明情况。谢谢。当你说他们没有把C++编译器建进调试器时,你是说Bug和编译器不像其他语言一样集成,比如C?这就解释了为什么intellisense和编译器经常不一致。