我針對的是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