哪种类型的字符串最适合用于Win32和DirectX
What type of string is best to use for Win32 and DirectX?
我正在用DirectX 10和C++开发一个小游戏,我发现各种不同类型的字符串对各种不同的DirectX/win32函数调用都是必需的。
有人能推荐各种字符串中哪种是最好使用的吗?理想情况下,它将是一种类型的字符串,可以很好地转换为其他类型(主要是LPCWSTR和LPCSTR)。到目前为止,我一直在使用std::string和std::wstring,并使用.c_str()函数将其转换为正确的格式。
我只想得到一种类型的字符串,我用它传递给所有函数,然后在函数内部进行强制转换。
与c_str()
一起使用std::wstring
。我认为没有理由在Windows上使用std::string
,您的代码也可以始终使用本机UTF-16编码。
我也会坚持使用std::wstring
。如果你真的需要在某个地方通过std::string
,你仍然可以在飞行中转换它:
std::string s = "Hello, World";
std::wstring ws(s.begin(), s.end());
它也起着相反的作用。
如果您使用的是Native COM(#import <type_library>
的东西),那么_bstr_t
。它原生地对LPCWSTR和LPCSTR进行类型转换,并且与COM的内存分配模型非常吻合。无需.c_str()
调用。
相关文章:
- 适用于win32、linux、mac的POSIX C包装器
- 用于修改网络接口属性的 Win32 API
- complex.h 适用于 Win32 目标以外的其他编译器,例如代码编辑器工作室 (CCS)
- C++ - 用于提取.zip的 Win32 API
- c++win32中是否有用于数字系统转换的内置函数
- 用于 Win32 应用程序的 WriteFile() 函数
- 用于从资源文件打开和获取数据的 Win32 API
- 用于在 Visual Studio 2005 中编译 Win32 "hello world"的命令行
- 用于C++的Win32 CRITICAL_SECTION的轻量级跨平台替代方案
- 在unix/win32上高效计算用于日志记录的日期/时间戳
- 用于本机Win32应用程序的可视化设计器
- 链接器读取库,但在其中找不到符号?未解析的外部符号,但仅适用于 Win32 而不是 x64
- 适用于 x64 和 Win32 平台的正确库版本
- 用于windows上的窗口系统的win32框架的替代方案
- 适用于win32/Unix的C++可移植NaN
- 哪种类型的字符串最适合用于Win32和DirectX
- wcscpy_s不适用于Win32组合框
- 如何检查我的库是否用于Win8商店应用程序或Win32应用程序
- 用于创建菜单栏的c++ win32程序(程序编译并运行,也显示窗口但不显示菜单栏)
- 用于确定c++代码使用的Win32 api版本的工具