我的问题是关于 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位整数。但它们有时(错误)用于传输句柄和偶尔的结构指针。我知道将它们分成不同的功能会更好,但这样做很难。