我的目标是 Windows,但我看不出为什么我正在编写的某些 API 代码不能使用基本的 C++ 类型。我想要做的是公开返回字符串和整数的方法。在 C# 世界中,我只使用字符串,并拥有一个 unicode 字符串,但在 VC++ 中,我可以选择使用 std::string、std::wstring 或 MFC/ATL CStrings。
我应该只使用 std::wstring 来支持 unicode,还是可以使用 std::string 根据我的构建设置编译为 unicode?我倾向于后者。我更愿意在我的对象上为其他字符串类型提供 Get[Item]AsCString() 方法。
我还应该使用 size_t 而不是整数吗?
该 API 将由我使用,也许未来的开发人员将使用 C++ GUI。这是一种分离关注点的方法。我的偏好:
- 对其他开发人员的直观性。
- 与 VC++ 的前向兼容性
- 与其他 C++ 编译器的兼容性
- 性能(这对我来说不太重要,但我的应用程序的其余部分需要启动时间)
任何指南将不胜感激。