您好我正在使用VS2010和MBCS。谁能告诉我如何将unsigned char转换为LPCSTR?对不起,我只是c ++的新手...... :)谢谢
这是它失败的代码:
hr = MsiSetProperty(hInstall, "LOCKCODE", szLockCode);
ExitOnFailure(hr, "failed to set LOCKCODE");
szLockCode
是需要转换的变量。
答案 0 :(得分:2)
unsigned char数组(例如unsigned char szLockCode[10]
)在技术上已经是LPCSTR。如果您已经使用了数组,那么转换不是问题,如果没有,那么您需要一个数组。如果你想要一个字符串,那么你需要一个长度为2的数组。该字符位于第一个位置(szLockCode[0]
),值0位于第二个位置(szLockCode[1]
)。
答案 1 :(得分:-1)
您可能会收到如下错误消息:
无法将参数3从'const char *'转换为'LPCWSTR'
要避免它,你应该输入convertion:
hr = MsiSetProperty(hInstall, "LOCKCODE", (LPCSTR)szLockCode);
或在字符串前使用L前缀:
LPCSTR szLockCode = L"Some error";
hr = MsiSetProperty(hInstall, "LOCKCODE", szLockCode );
以下是LPCSTR代表什么的一个很好的解释: