Я пытаюсь перенести некоторый код на 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-разрядным:
Thrdaddr
Points to a 32-bit variable that receives the thread identifier. Might be NULL, in which case it is not used.