【发布时间】:2013-07-19 04:23:24
【问题描述】:
我很难理解并使其正常工作。基本上归结为我无法成功初始化这种类型的变量。它需要有7&2E25DC9D&0&USB003 的内容。
任何人都可以解释/显示这种类型的正确初始化和类似的值吗?我查看了该站点上的所有帮助,将我的项目属性从 unicode 更改为 multibyte 并不能解决问题,其他解决方案也不适合我。
在我的代码中,下面是我开始初始化的方式:
LPCTSTR portvalue = new TCHAR[100];
【问题讨论】:
-
我建议坚持
std::wstring。 -
或者,放弃
LPCTSTR,直接使用CStringW或std::wstring。 -
AFAICT,支持“Unicode”和“多字节”/“ASCII”编码的唯一原因是您希望您的代码在 Windows 3.0 上运行。如果您的代码仅在 WindowsNT3.1 和更高版本上运行,则更容易假设
_UNICODE为真并在任何地方使用 wstring。 -
@MooingDuck 关于这一点,MFC 中的多字节支持实际上在 Microsoft Visual Studio 2013 及更高版本中已被弃用。