现在的位置: 首页 > 综合 > 正文

std::string 转LPCSTR

2013年09月05日 ⁄ 综合 ⁄ 共 445字 ⁄ 字号 评论关闭
LPCTSTR不是一个类型,而是两种类型:LPCSTR和LPCWSTR其中之一。会根据你当前程序是否使用UNICODE字符集来变成那二者之一。如果使用UNICODE字符集,则LPCTSTR = LPCWSTR,否则LPCTSTR = LPCSTR。

标准库的std::string转换成LPCSTR很简单:直接调用c_str()即可。例:
std::string a="abc"; 
LPCSTR str = a.c_str();

标准库还有一个wstring,代表宽字符的string,std::wstring转换成LPCWSTR也一样很简单:
std::wstring a = L"abc";
LPCWSTR str = a.c_str();

如果要是std::string转换成LPCWSTR或者std::wstring转换成LPCSTR那就比较麻烦了,需要调用MultiByteToWideChar或WideCharToMultiByte进行字符集之间的转换。不过大多数时候不需要这种交叉转换,一个程序一般只会使用一种字符集。

抱歉!评论已关闭.