gpt4 book ai didi

c++ - const HANDLE 真的是 const 吗?

转载 作者:可可西里 更新时间:2023-11-01 11:35:01 24 4
gpt4 key购买 nike

据我所知,HANDLE 只是指代某种“系统资源表”的数字。这个句柄 const 正确吗?我猜不是因为它只是用来访问一个表,就像数组的索引一样。位图示例:虽然 HBITMAP 声明为 const,但我可以更改位图的内容吗?

最佳答案

HANDLE 是 (AFAIR) int 的 typedef,因此 const HBITMAP 与 const int 相同。

从这个意义上说,即使位图的句柄是 const,您也可以更改位图的内容,因为 const 指的是句柄而不是实际的位图(将其视为指向变量类的 const 指针。)

但是:

无论如何,您的问题没有实际意义,因为:

  • 句柄是 Win32 API 的一项功能,它是 C api 而不是 C++(在 C 获得 const 之前创建)。
  • 无论如何,您不能直接更改位图(或任何其他由句柄表示的“对象”)。句柄是对 Win32 结构的不透明引用,只能通过用于处理(没有双关语意)“对象”的适当 Win32 API 调用来操作。

我将“对象”放在引号中是因为句柄指的是概念对象(概念的软件表示)而不是实际的 C++ 对象,同样是因为 Win32 是一个 C API。

关于c++ - const HANDLE 真的是 const 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13829691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com