C++:如何将十六进制 HANDLE 转换为十进制?

标签 c++ types type-conversion

在c++中,我从另一个函数得到一个HANDLE类型ID,它看起来是一个十六进制,我想把它转换成十进制。

HANDLE id = getCurrentID();
int decimalID = static_cast<int>( id );

但是第二行给出了这个错误:

Cannot convert from 'HANDLE' to 'int'.

这是我第一次遇到HANDLE类型。有人可以帮忙解释一下吗?谢谢。

更新:

我正在使用 Windows XP 和 Visual Studio 2010。

最佳答案

我猜你使用的是 Windows,因为 HANDLE 是 Microsoft 的东西通常使用的名称。

HANDLE 类型是指向对象(未指定类型)的指针,并被传递到其他函数以对该对象执行操作。一般不需要直接操作。

我不确定为什么要将它转换为 int,因为它通常看起来没什么用,但您可以使用 C 风格的转换来完成它,或者 reinterpret_cast 如其他答案中所述。

如果您想了解这些 Microsoft 类型名称背后的真实类型,可以查看 their documentation .

关于C++:如何将十六进制 HANDLE 转换为十进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23006107/

相关文章:

c++ - 输出一个可能是三种类型之一的数字

c++ - 使用 std::range::copy 和适配器打印 std::map

mysql - 将 MySQL tinyint 类型转换为 bit

c++ - Qt - 将 float 转换为 QString

java - 将非常大的二进制字符串转换为长字符串

c++ - Lotus Notes C++ API 通过 UNID 获取文档

c++ - 质数函数 C++

Go接口(interface)方法返回接口(interface)与返回具体类型的方法不匹配

go - 结构类型作为映射键

c - math.h 默认舍入模式不明确