j'ai changé ma classe à utiliser std :: string (en fonction de la réponse que je suis arrivé here mais une fonction je wchar_t * retours Comment puis-je convertir en std :: stringComment convertir wchar_t * en std :: string? .?
J'ai essayé ceci:
std::string test = args.OptionArg();
mais il dit erreur C2440: 'initialisation': ne peut pas convertir 'wchar_t *' à 'std :: basic_string < _Elem, _Traits, _Ax>'
et je vais toujours obtenir un const char * si j'utilise .c_str()? J'ai d'autres fonctions qui attendent const char * – codefrog
Je vais faire une supposition que vous construisez votre projet en Unicode, mais ne le veux vraiment pas. Si cela est correct, vous pouvez modifier les propriétés de votre projet pour ne pas construire pour Unicode et ensuite vous pouvez utiliser 'string'. Cochez cette case dans Propriétés du projet, Propriétés de configuration, Général, Jeu de caractères. Vous avez besoin de ceci pour dire 'Use Multibyte Character Set' pour vous débarrasser d'Unicode partout. –
A l'origine, j'avais prévu d'utiliser Unicode pour certaines parties, mais j'ai décidé de m'en inquiéter plus tard. À ce stade, je suis seulement dérangé pour que le programme fonctionne. J'utilise SimpleINI et SimpleOpt pour charger les options et il utilise Unicode. J'utilise aussi le SDK d'un autre logiciel qui utilise aussi Unicode. Si vous désactivez Unicode tous ensemble, même ces parties du code risquent de ne plus fonctionner. – codefrog