我正在尝试将一些代码移植到 64 位,但似乎其中的线程地址标识符_beginthreadex
是unsigned int
32 位,我无法从函数传递/接收 64 位地址标识符:
uintptr_t _beginthreadex( // NATIVE CODE
void *security,
unsigned stack_size,
unsigned ( __stdcall *start_address )( void * ),
void *arglist,
unsigned initflag,
unsigned *thrdaddr // <-- 32-bit address
);
我查看了MSDN 文档,但没有看到该功能的 64 位版本。我是否包括了错误的标头、每个处理器的标志,或者是否有其他方法可以创建具有 64 位地址标识符的线程?
更新
文档说明该thrdaddr
参数是 32 位的:
阈值
Points to a 32-bit variable that receives the thread identifier. Might be NULL, in which case it is not used.