BYTE name[1000];
在我的visual c++
项目中有一个变量name
和数据类型。如果我没有错,那么相当于unsigned char
。现在我想将此unsigned char *
转换为LPCTSTR
。如何将unsigned char转换为visual C++中的LPCTSTR?
我该怎么做?
BYTE name[1000];
在我的visual c++
项目中有一个变量name
和数据类型。如果我没有错,那么相当于unsigned char
。现在我想将此unsigned char *
转换为LPCTSTR
。如何将unsigned char转换为visual C++中的LPCTSTR?
我该怎么做?
LPCTSTR
定义为char const*
或wchar_t const*
,其基于UNICODE
是否被定义。
如果UNICODE
定义,那么你需要的多字节字符串转换使用MultiByteToWideChar
一个宽字符字符串。
如果UNICODE
是不定义,一个简单的投就足够了:static_cast< char const* >(name)
。
这假定name
是空结尾的C字符串,在这种情况下,将其定义将毫无意义。您应该使用CHAR
或TCHAR
,根据您如何在name
上操作。
您也可以直接指定“名称”变量CString对象,如:
CString strName = name;
然后你就可以调用CString的的的GetBuffer()或者是更多更好地得到LPCTSTR甚至最好的GetString()方法。优点是CString类将自动执行任何需要的转换。无需担心Unicode设置。
LPCTSTR pszName = strName.GetString();
你真的不应该作为一个字节是没有必要的TCHAR - http://stackoverflow.com/questions/321413/lpcstr-lpctstr-and-lptstr –
@AlexeiLevenkov其实这是一个项目,我需要将其更新。所以我不能使用它TCHAR :( –