我正在尝试将常量char* 传递给Windows SetThreadDescription()函数。
int pthread_setname_np(HANDLE thread, const char* name) {
return SetThreadDescription(thread, name);
}
我得到一个错误
'HRESULT设置线程描述(句柄,PCWSTR)':无法将参数2从“const char *”转换为“PCWSTR”
当然,我偶然发现了this并检查了字符集,它已经被设置为使用多字节字符集。有办法解决这个问题吗?
编辑:添加属性
2条答案
按热度按时间db2dz4w81#
@someprogrammerdude在评论中给出了答案:
SetThreadDescription函数似乎不存在于“ASCII”(非宽字符)版本中。您需要将字符串转换为宽字符串,并在调用中使用转换后的字符串。
wnavrhmk2#
SetThreadDescription需要unicode(两个字节)说明。线程名称通常只是常量字符串。如果是这种情况,只需在字符串前面加上“L”。