我应该在DirectX中使用std :: string或Windows数据类型吗?

Chr*_*vic 4 c++ windows string directx winapi

我一直在研究基于DirectX的项目,我正在努力解决问题.虽然DirectX SDK中严重依赖Windows的数据类型,如LPSTR,LPCSTR......我已经用了我自己的类std::string这是很容易的工作,但它看起来很奇怪混合的处理字符串两种方式.虽然这是一个模糊的问题,但你有什么建议 - 我应该使用strings或Windows指针来处理不同的字符串类型以保持一致性吗?

And*_*owl 5

LPSTR只是别名,char*并且LCPSTR是别名const char*,所以你的问题实际上听起来像"我应该使用C++字符串还是C字符串?"

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

我建议你std::string尽可能使用C++ ,它更安全.