在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/