WTL*_*bie 7 c++ api-design visual-c++
我的目标是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上工作.这是一种分离问题的方法.我的偏好:
任何指南将不胜感激.
在你的情况下,我需要几个小时/几天的时间才能形成意见并做出决定。首先,与 C++_API 相比,我更喜欢 C_API,即使对于 C++ 代码也是如此。那么答案将是 char*、wchar* 或 TCHAR*。现在,尝试猜测您是否真的期望需要 UNICODE。我的绝大多数项目(包括那些带有 GUI 的项目)都不需要 UNICODE,普通 C 数组的简单性和熟悉性往往是难以匹敌的。
简而言之,尝试预测您的需求是什么,不要试图展望太远的未来(2年是一个很好的标志),然后提出最简单的解决方案来满足需求。
最后:为了更直接地回答你的问题,我将从 std::string 作为我评估的第一选择开始。除非我能找到一些有利于其他选择的出价优势,否则我会坚持下去。
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |