哪种类型的字符串最适合 Win32 和 DirectX?

发布于 2024-12-29 06:12:56 字数 284 浏览 0 评论 0原文

我正在使用 DirectX 10 和 C++ 开发一个小游戏,我发现各种不同的 directx / win32 函数调用所需的各种不同类型的字符串非常糟糕。

任何人都可以推荐可用的各种字符串中哪一个是最好使用的,理想情况下,它是一种可以为其他类型(主要是 LPCWSTR 和 LPCSTR)提供良好转换的字符串类型。到目前为止,我一直在使用 std::string 和 std::wstring 并执行 .c_str() 函数以将其转换为正确的格式。

我只想获取一种类型的字符串,用于传递给所有函数,然后在函数内进行转换。

I am in the process of developing a small game in DirectX 10 and C++ and I'm finding it hell with the various different types of strings that are required for the various different directx / win32 function calls.

Can anyone recommend which of the various strings are available are the best to use, ideally it would be one type of string that gives a good cast to the other types (LPCWSTR and LPCSTR mostly). Thus far I have been using std::string and std::wstring and doing the .c_str() function to get it in to the correct format.

I would like to get just 1 type of string that I use to pass in to all functions and then doing the cast inside the function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

羁〃客ぐ 2025-01-05 06:12:57

正如您所做的那样,将 std::wstringc_str() 一起使用。我认为没有理由在 Windows 上使用 std::string,您的代码最好始终使用本机 UTF-16 编码。

Use std::wstring with c_str() exactly as you have been doing. I see no reason to use std::string on Windows, your code may as well always use the native UTF-16 encoding.

分开我的手 2025-01-05 06:12:57

我也会坚持使用 std::wstring 。如果您确实需要在某个地方传递 std::string ,您仍然可以即时转换它:

std::string s = "Hello, World";
std::wstring ws(s.begin(), s.end());

反之亦然。

I would stick to std::wstring as well. If you really need to pass std::string somewhere, you can still convert it on the fly:

std::string s = "Hello, World";
std::wstring ws(s.begin(), s.end());

It works the other way around as well.

请远离我 2025-01-05 06:12:57

如果您使用的是 Native COM(#import 的内容),则使用 _bstr_t。它本身可以类型转换为 LPCWSTR 和 LPCSTR,并且与 COM 的内存分配模型很好地配合。不需要 .c_str() 调用。

If you're using Native COM (the stuff of #import <type_library>), then _bstr_t. It natively typecasts to both LPCWSTR and LPCSTR, and it meshes nicely with COM's memory allocation model. No need for .c_str() calls.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文