【发布时间】:2015-10-17 17:33:26
【问题描述】:
好吧,我问的唯一原因是因为我读到 HWND 是一个指针,指针会更改原始值,而不是创建存储在该内存位置的副本。
但它实际上并不像一个指针,我之所以这么说是因为如果我有一个 switch 语句,示例:
void ExampleFunction(int iSwitch)
{
HWND hButton;
switch (iSwitch)
{
case 1:
hButton = CreateWindow( Blah Blah blah); //<-- Shouldn't it return to hButton's location.
break;
case 2:
ShowWindow(hButton, SW_SHOW); //<-- Ops forgot what was stored in hButton.
break;
}
}
但是作为一个新的C++ Win32程序员,不应该忘记吗?只需定位内存地址,然后抓取里面的内容。除非内存地址改变等。
我真的不知道,你介意详细说明吗?谢谢。
【问题讨论】:
-
请尝试创建Minimal, Complete, and Verifiable Example,因为问题中的代码缺少很多上下文。
-
将 HWND 视为标识窗口的值。您所要做的就是将它传递给需要知道您引用哪个窗口的函数。
-
“指针更改原始值,而不是创建存储在该内存位置的副本” 这是一种非常简单且不准确的指针定义方式。
-
@Lightness Races in Orbit - 阅读书籍时,它们往往会给你一种描述事物的简单方式,而不是仅仅用 5 章来描述指针是什么。所以我只是复制了我从阅读 C++ Primer Plus 第 6 版中听到的内容。
-
@TrevinCorkery:好的,但我也说“不准确”。它让你产生了这种误解。这不是说什么吗?