CreateMutex()参数问题

Posted fulse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CreateMutex()参数问题相关的知识,希望对你有一定的参考价值。

举例: hMutex = CreateMutex(NULL, FALSE,"screen");

 报错 error C2664:“CreateMutexW”: 不能将参数 3 从“const char [7]”转换为“LPCWSTR”

与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换;

解决:Ascii 环境调用CreateMutexA,unciode环境调用CreateMutexW

此例报错原因即是 使用的是unicode环境,函数自动调用的是CreateMutexW宽字符函数,所以参数LPCTSTR 是LPCWSTR类型的,加_T(),TEXT(),或L(字符)即可  hMutex = CreateMutex(NULL, FALSE,_T("screen"));或  hMutex = CreateMutex(NULL, FALSE,L"screen"); 或 hMutex = CreateMutex(NULL, FALSE,TEXT("screen"));

以上是关于CreateMutex()参数问题的主要内容,如果未能解决你的问题,请参考以下文章

WinAPI WinMain, CreateMutex, ShellExecute三个函数

对 CreateMutex 的困惑

CreateMutex和WaitForSingleObject组合的有关问题

CreateMutex函数 (转)

CreateMutex 从不返回 ERROR_ALREADY_EXISTS

如何从.Net调用win32 CreateMutex