我现在一直在从事一个基于 DirectX 的项目,但我正在努力解决一些问题。尽管 DirectX SDK 严重依赖于 Windows 数据类型,例如 LPSTR
、LPCSTR
,...我一直在为自己的类使用 std::string
这很容易使用,但是混合两种处理字符串的方式看起来很奇怪。虽然这是一个模糊的问题,但您有什么建议 - 我应该使用 string
还是使用 Windows 指针来处理不同的字符串类型以保持一定的一致性?
最佳答案
LPSTR
只是 char*
的别名,而 LCPSTR
是 const 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/