将unsigned char转换为LPCSTR

时间:2012-09-25 11:15:22

标签: c++

您好我正在使用VS2010和MBCS。谁能告诉我如何将unsigned char转换为LPCSTR?对不起,我只是c ++的新手...... :)谢谢

这是它失败的代码:

    hr = MsiSetProperty(hInstall, "LOCKCODE",  szLockCode);
    ExitOnFailure(hr, "failed to set LOCKCODE");

szLockCode是需要转换的变量。

2 个答案:

答案 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代表什么的一个很好的解释:

LPCSTR, LPCTSTR and LPTSTR