我针对的是Windows,但我没有看到任何理由说明为什么我正在编写的一些API代码无法使用基本的C++类型。我想要做的是公开返回字符串和整数的方法。在C#世界中,我只是使用字符串,并有一个Unicode字符串,但在VC++中,我可以选择使用std :: string,std :: wstring或MFC/ATL CString。要在C++ API上公开的基本类型
我应该只使用std :: wstring专门支持unicode,或者我可以使用std :: string将根据我的编译设置编译为unicode?我倾向于后者。我更喜欢在我的对象上为其他字符串类型提供Get [Item] AsCString()方法。
也应该使用size_t而不是整数?
这个API将会被我使用,也许是一个将来在C++ GUI上工作的开发者。这是区分顾虑的一种方式。我的偏好:
- 其他开发人员的直观性。
- 用VC++
- 与其他C++编译器兼容性向前兼容性
- 性能(这对我来说是一个较小的问题,但需要的启动时间我的应用程序的其余部分)
任何导游,将不胜感激。
这种风格的项目配置实际上取决于项目的目的等。一切都有它的地方,这就是为什么某些方面不被简单地弃用。 'std :: string'是我见过的最常见的用法(尽管我已经见过'wchar_t'等等的unicode),并且如果你正在测量某个东西的大小,请使用'size_t'。 – RageD 2011-02-27 19:30:13