【问题标题】:How to convert unsigned char to LPCTSTR in visual c++?如何在 Visual C++ 中将 unsigned char 转换为 LPCTSTR?
【发布时间】:2012-12-15 10:09:01
【问题描述】:
BYTE name[1000];

在我的visual c++ 项目中,有一个变量定义为name,其数据类型为BYTE。如果我没记错,那么BYTE 相当于unsigned char。现在我想把这个unsigned char * 转换成LPCTSTR

我该怎么做?

【问题讨论】:

标签: visual-c++ pointers casting bytearray


【解决方案1】:

LPCTSTR 被定义为 char const*wchar_t const*,取决于是否定义了 UNICODE

  • 如果定义了UNICODE,则需要使用MultiByteToWideChar多字节字符串转换为宽字符字符串。 p>

  • 如果UNICODE没有定义,一个简单的转换就足够了:static_cast< char const* >( name )

这假设name 是一个以null 终止的c 字符串,在这种情况下定义它BYTE 是没有意义的。您应该使用CHARTCHAR,具体取决于您在name 上的操作方式。

【讨论】:

    【解决方案2】:

    您也可以直接将“名称”变量分配给 CString 对象,例如:

    CString strName = name;
    

    然后你可以调用 CString 的 GetBuffer() 或者最好是 GetString() 方法,这样更容易获得 LPCTSTR。优点是 CString 类将为您自动执行所需的任何转换。无需担心 Unicode 设置。

    LPCTSTR pszName = strName.GetString();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-11
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      相关资源
      最近更新 更多