我正在尝试使用 MSVC 64 位编译器解决以下代码的逻辑错误。
这段代码之前在 32 台机器上运行良好。
return ((ULONG) DupThreadHandle);
在 64 位世界中,我了解到任何线程句柄都是 64 位(实际上是 6 字节),所以这段代码显然是错误的,因为目标类型是 32 位的 ULONG。
但是 msdn 建议使用我在标题中提到的帮助函数,通过包含 basetsd.h 对 C 代码进行 64 位移植
但我的问题是,这些辅助函数如何在概念上将 6 字节地址更改为 4 字节地址?因为已经将线程放置在某个 6 字节地址。这个 4 字节地址有多大意义?我不想更改目的地类型。因为问题将是递归警告。