可以处理大于32位?

时间:2017-03-31 09:13:59

标签: c++ c pointers struct 64-bit

我的问题是关于 64位 Windows体系结构中的句柄: 它们可以是大于2 ^ 32的值吗?

Visual Studio中的句柄C / C ++被定义为指针(64位): typedef void * HANDLE;

我读到64位中至少有一些句柄只有较低的32位有效(https://msdn.microsoft.com/nl-nl/library/windows/desktop/aa384203(v=vs.85).aspx)。但这适用于所有句柄吗?

第二个问题是指向结构的指针是否可以被视为句柄。将它们转换为32位整数是否安全?

一些背景: 我正在将一个复杂的应用程序移植到64位,并且必须处理输入/输出参数,我非常希望保留32位整数。但它们有时(错误)用于传输句柄和偶尔的结构指针。我知道将它们分成不同的功能会更好,但这样做很难。

0 个答案:

没有答案