gpt4 book ai didi

c++ - 在 C++ API 上公开的基本类型

转载 作者:可可西里 更新时间:2023-11-01 18:38:06 25 4
gpt4 key购买 nike

我的目标是 Windows,但我看不出我正在编写的某些 API 代码不能使用基本 C++ 类型的任何原因。我想要做的是公开返回字符串和整数的方法。在 C# 世界中,我只使用字符串和 unicode 字符串,但在 VC++ 中,我可以选择使用 std::string、std::wstring 或 MFC/ATL CString。

我应该专门使用 std::wstring 来支持 unicode,还是我可以使用 std::string,它会根据我的build设置编译为 unicode?我倾向于后者。我更愿意为其他字符串类型的对象提供 Get[Item]AsCString() 方法。

我还应该使用 size_t 而不是整数吗?

API 将由我使用,也许 future 的开发人员会使用 C++ GUI。这是一种分离关注点的方法。我的偏好:

  • 对其他开发者而言直观。
  • 向前兼容 VC++
  • 与其他 C++ 编译器的兼容性
  • 性能(我不太关心这个,但我的应用程序的其余部分需要启动时间)

任何指南将不胜感激。

最佳答案

您可能应该坚持使用 STL 字符串类型。现在,MFC CString 类是建立在该类之上的。

如前所述,使用 wstring 并不是解决 Unicode 问题的 Elixir ,因为许多 Unicode 字符仍然需要多个 wchars 来编码。

改用 Utf-8 有潜在的好处(例如,您不必担心字节顺序)。

在 Windows 上,所有现代内核都是基于 wchar 的,因此如果您使用 API 的 8 位 char 版本,则会涉及(最小的)性能开销。

关于c++ - 在 C++ API 上公开的基本类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com