Je cible Windows mais je ne vois pas pourquoi un code API que j'écris ne peut pas utiliser les types C++ de base. Ce que je veux faire, c'est exposer des méthodes qui retournent des chaînes et des ints. Dans le monde C# j'utiliserais juste une chaîne, et aurais une chaîne unicode, mais dans VC++ j'ai l'option d'utiliser std :: string, std :: wstring, ou MFC/ATL CStrings. Dois-je simplement utiliser std :: wstring exclusivement pour prendre en charge unicode, ou puis-je utiliser std :: string qui serait compilé en unicode en fonction de mes paramètres de construction? Je penche vers ce dernier. Je préférerais fournir des méthodes Get [Item] AsCString() sur mes objets pour d'autres types de chaînes.Types de base à exposer sur une API C++
De même devrais-je utiliser taille_t au lieu d'entier?
L'API va être utilisé par moi, et peut-être travailler un futur développeur sur l'interface graphique C++. C'est un moyen de séparer les préoccupations. Mes préférences:
- Intuitivité pour les autres développeurs.
- compatibilité avant avec VC
- Compatibilité avec d'autres compilateurs C++
- Performance (ce qui est une moindre préoccupation pour moi, mais il faut le temps de démarrage pour le repos de mon application)
Tous les guides seraient appréciés .
Ce style de configuration de projet dépend vraiment de l'objectif du projet, etc. Tout a sa place, c'est pourquoi certains aspects ne sont pas simplement déconseillés. 'std :: string' est l'utilisation la plus courante que j'ai vue (bien que j'ai vu' wchar_t', etc. pour unicode) et si vous mesurez la taille de quelque chose, utilisez 'size_t'. – RageD