c++ - 我应该在 DirectX 中使用 std::string 还是 Windows 数据类型?

标签 c++ windows string winapi directx

我现在一直在从事一个基于 DirectX 的项目,但我正在努力解决一些问题。尽管 DirectX SDK 严重依赖于 Windows 数据类型,例如 LPSTRLPCSTR,...我一直在为自己的类使用 std::string 这很容易使用,但是混合两种处理字符串的方式看起来很奇怪。虽然这是一个模糊的问题,但您有什么建议 - 我应该使用 string 还是使用 Windows 指针来处理不同的字符串类型以保持一定的一致性?

最佳答案

LPSTR 只是 char* 的别名,而 LCPSTRconst char* 的别名,所以你的问题实际上听起来像“我应该使用 C++ 字符串还是 C 字符串?”

嗯,C++ std::string 有一个名为 c_str() 的成员函数(或等效的 data() 函数以实现 STL 兼容性) 返回一个(不可修改的)C 字符串。因此,只要函数接受 LPCTSTR,您就可以提供 c_str() 的输出作为参数。

我建议您尽可能使用 C++ std::string,这样更安全。

关于c++ - 我应该在 DirectX 中使用 std::string 还是 Windows 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14635199/

相关文章:

c++ - 返回特定于类的枚举

c++ - clang++ 是否忽略了一些弃用警告的 extern "C"?

c++ - 为什么这个循环会破坏我的内存?

string - 在 Java7 中从字符串创建路径

c - C 中从 int 到 char 的类型转换

c++ - clflush 不刷新指令缓存

c++ - 我可以在 C++ 中使用 boost 生成多少个线程?

windows - Delphi 中的跨应用程序拖放

windows - 通过 shell 脚本使用用户名和密码 SSH 到远程 Windows 机器

java - Android-第二秒后未添加字符串