调试m_hWnd值为unused=???

kbcsy 2009-11-27 10:34:45
在对话框初始化的OnInitDialog()函数中,需要向创建的子线程传递对话框句柄,为什么调试发现m_hWnd值为unused=???
请问怎么回事??
...全文
1084 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hecha 2009-12-01
  • 打赏
  • 举报
回复 1
HWND 的定义类似下面的:
struct tagHWND { int unused; };
typedef tagHWND * HWND;
就是一个指向结构体的指针. 但是 Windows 不会真的为它分配一块内存:
HWND hWnd = new tagHWND; // 不会这么做
它的值通过另外的方式获得
调试器把它看作 tagHWND*, 把它的值当作内存地址. 这个地址(其实可能是任意值)可能是在任何区域, 例如不合法的区域, 这时调试器显示的值就是 unused=???
只要 m_hWnd 不为零, 就说明窗口创建成功了, unused=??? 是正常情况, 不须理会
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 renjiejike0601 的回复:]
可是NULL能排除???吗?unused又是为什么呢,而且程序其它地方感觉都没错(照着别人的视频做的),就这里最可疑了,因为不能传值过去啊..
[/Quote]
因为HWND是一个句柄值,具体的值是什么对你来说没意义,是给操作系统看的。只有为空的时候才表示是无效值。
kbcsy 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tr0j4n 的回复:]
引用 5 楼 renjiejike0601 的回复:
m_hWnd不是说每个窗口都有一个这样的成员变量吗?应该不用赋值的吧!
其实我一直困惑,OnInitDialog()里怎么能使用m_hWnd呢,OnInitDialog()都没执行完对话框窗口应该就没有初始化完成吧,哪里来的句柄呢

窗口类已经构造完毕,为什么没有句柄?
[/Quote]
哦,原来这样的啊,可是为什么m_hWnd调试会显示错误,提示无法计算表达式的值呢?还请指教
MoXiaoRab 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 renjiejike0601 的回复:]
m_hWnd不是说每个窗口都有一个这样的成员变量吗?应该不用赋值的吧!
其实我一直困惑,OnInitDialog()里怎么能使用m_hWnd呢,OnInitDialog()都没执行完对话框窗口应该就没有初始化完成吧,哪里来的句柄呢
[/Quote]
窗口类已经构造完毕,为什么没有句柄?
kbcsy 2009-11-27
  • 打赏
  • 举报
回复
m_hWnd不是说每个窗口都有一个这样的成员变量吗?应该不用赋值的吧!
其实我一直困惑,OnInitDialog()里怎么能使用m_hWnd呢,OnInitDialog()都没执行完对话框窗口应该就没有初始化完成吧,哪里来的句柄呢
kbcsy 2009-11-27
  • 打赏
  • 举报
回复
可是NULL能排除???吗?unused又是为什么呢,而且程序其它地方感觉都没错(照着别人的视频做的),就这里最可疑了,因为不能传值过去啊..
fandh 2009-11-27
  • 打赏
  • 举报
回复
debug版本下面,没有初始化或者赋值的时候,有时候会出现这个问题!
WaistCoat14 2009-11-27
  • 打赏
  • 举报
回复
没赋值?
  • 打赏
  • 举报
回复
那是调试器显示的问题
是不是空用 NULL == m_hWnd 来判断

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧