Visual c++ 如何在visualc++;?
在我的Visual c++ 如何在visualc++;?,visual-c++,pointers,casting,bytearray,Visual C++,Pointers,Casting,Bytearray,在我的visualc++项目中,有一个用BYTE数据类型定义的变量name。如果我没有错的话,字节相当于无符号字符。现在我想把这个无符号字符*转换成LPCTSTR 我应该怎么做?LPCTSTR根据是否定义了UNICODE定义为char const*或wchar\u t const* 如果定义了UNICODE,则需要使用MultiByteToWideChar将多字节字符串转换为宽字符字符串 如果未定义UNICODE,则简单的强制转换就足够了:static\u cast(name) 这假设nam
visualc++
项目中,有一个用BYTE
数据类型定义的变量name
。如果我没有错的话,字节
相当于无符号字符
。现在我想把这个无符号字符*
转换成LPCTSTR
我应该怎么做?
LPCTSTR
根据是否定义了UNICODE
定义为char const*
或wchar\u t const*
- 如果定义了
,则需要使用UNICODE
将多字节字符串转换为宽字符字符串MultiByteToWideChar
- 如果未定义
,则简单的强制转换就足够了:UNICODE
static\u cast
(name)
这假设
name
是一个以null结尾的c字符串,在这种情况下定义它BYTE
是没有意义的。您应该使用CHAR
或TCHAR
,这取决于您对name
的操作方式LPCTSTR
根据是否定义了UNICODE
定义为CHAR常量*
或wchar\t常量*
- 如果定义了
,则需要使用UNICODE
将多字节字符串转换为宽字符字符串MultiByteToWideChar
- 如果未定义
,则简单的强制转换就足够了:UNICODE
static\u cast
(name)
这假设
name
是一个以null结尾的c字符串,在这种情况下定义它BYTE
是没有意义的。您应该使用CHAR
或TCHAR
,根据您对name
的操作方式,您还可以直接将“name”变量分配给CString对象,如:
BYTE name[1000];
然后,您可以调用CString的GetBuffer()或者更好的GetString()方法,后者更适合于获取LPCTSTR。优点是CString类将自动执行您所需的任何转换。无需担心Unicode设置
CString strName = name;
您还可以直接将“name”变量分配给CString对象,如:
BYTE name[1000];
然后,您可以调用CString的GetBuffer()或者更好的GetString()方法,后者更适合于获取LPCTSTR。优点是CString类将自动执行您所需的任何转换。无需担心Unicode设置
CString strName = name;
你真的不应该,因为BYTE不是必需的,TCHAR-@AlexeiLevenkov实际上这是一个项目,我必须更新它。所以我不能用它TCHAR:(你真的不应该,因为字节不是必需的TCHAR-@AlexeiLevenkov实际上这是一个项目,我必须更新它。所以我不能用它TCHAR:(