Visual Studio监视窗口中的问号(???)表示什么?

bsh*_*52s 8 debugging visual-studio

我遇到了一个异常并在观察窗口中查看变量,我看到了一些问号(???).这是否意味着它指向一个无效的地址?

In *_*ico 6

这意味着调试器无法确定其值.

例如,如果您的代码涉及HWNDs ,您会看到相当多的内容.如果你查看Windows头文件,它通过宏定义如下:

struct HWND__{int unused;}; typedef struct HWND__ *HWND;
Run Code Online (Sandbox Code Playgroud)

所以类型HWND实际上是"指向一个HWND__" 的类型.但是,HWND从函数中获得的值CreateWindow()实际上并不是指向任何函数的指针.

但调试器将尝试计算unused结构中成员的值,但不能这样做:

观察窗口

当监视变量具有错误或缺少类型信息时,您还会看到这些类型的错误.