Я нацеливаюсь на Windows, но не вижу причин, по которым какой-то код API, который я пишу, не может использовать базовые типы C ++. То, что я хочу сделать, это выставить методы, которые возвращают строки и целые числа. В мире C # я бы просто использовал строку и имел строку в юникоде, но в VC ++ у меня есть возможность использовать std :: string, std :: wstring или MFC / ATL CStrings.
Должен ли я просто использовать std :: wstring исключительно для поддержки юникода, или я могу использовать std :: string, который будет скомпилирован в юникод на основе моих настроек сборки? Я склоняюсь к последнему. Я бы предпочел предоставить методы Get [Item] AsCString () для моих объектов для других типов строк.
Также я должен использовать size_t вместо целого числа?
API будет использоваться мной и, возможно, будущим разработчиком, работающим над C ++ GUI. Это способ разделить проблемы. Мои предпочтения:
- Интуитивность для других разработчиков.
- Прямая совместимость с VC ++
- Совместимость с другими компиляторами C ++
- Производительность (это меня меньше беспокоит, но нужно время запуска для остальной части моего приложения)
Любые гиды будут оценены.