BYTE name[1000];
在我的visual c++
项目中,有一个name
使用BYTE
数据类型定义的变量。如果我没有错,那么BYTE
就相当于unsigned char
。现在我想将其转换unsigned char *
为LPCTSTR
.
我该怎么做?
BYTE name[1000];
在我的visual c++
项目中,有一个name
使用BYTE
数据类型定义的变量。如果我没有错,那么BYTE
就相当于unsigned char
。现在我想将其转换unsigned char *
为LPCTSTR
.
我该怎么做?
LPCTSTR
被定义为char const*
或者wchar_t const*
基于是否UNICODE
被定义。
如果UNICODE
已定义,则需要使用. 将多字节字符串转换为宽字符字符串MultiByteToWideChar
。
如果UNICODE
没有定义,一个简单的转换就足够了:static_cast< char const* >( name )
.
这假设这name
是一个以空结尾的 c-string,在这种情况下定义它BYTE
是没有意义的。你应该使用CHAR
or TCHAR
,这取决于你是如何操作的name
。
您还可以直接将“名称”变量分配给 CString 对象,例如:
CString strName = name;
然后你可以调用 CString 的 GetBuffer() 或者最好是 GetString() 方法,这更好地得到 LPCTSTR。优点是 CString 类将自动为您执行所需的任何转换。无需担心 Unicode 设置。
LPCTSTR pszName = strName.GetString();