Est-il sûr de faire un signé non signé à court pour wchar_t et vise versa?
-
14-11-2019 - |
Question
Bonjour, je migrerais le projet de Visual Studio 6.0 à Visual Studio 2005.
Le problème auquel je suis confronté est ce ... dans vs 6.0 wchar_t
était simplement en typède de unsigned short
Mais dans VS2005 wchar_t
est construit en type de données.
Dans le projet, les programmeurs précédents ont utilisé WCHAR_T et un signé à court terme intesté. Mais dans vs 2005, il montrant des erreurs comme ne peut pas se convertir wchar_t
à unsigned short
et vice versa.
Donc ma question est de pouvoir lancer en toute sécurité wchar_t
à unsigned short
Et vice versa ou nous avons besoin de fonctions d'utilisation comme les mbstowcs et les wcstombs?
La solution
Vous pouvez utiliser la boîte de dialogue des paramètres du projet / ZC: WCHAR_T- (ou son équivalent dans la boîte de dialogue des paramètres du projet) pour désactiver la fonction WCHAR_T-AS-NATIF de type natif dans VS 2005:
http://msdn.microsoft.com/en-us/library/dh8che7s%28v=vs.80%29.aspx
Autres conseils
Changer l'option Traitez WCHAR_T comme un type natif pour No a fonctionné pour moi :). VC ++ 2010 Express.
Vous irez probablement bien mais, si c'était moi, je ferais une recherche et remplacerais et changerais des références en caractères Unicode pour wchar_t
. Pour commencer, vous pourriez simplement faire fonctionner votre code avec de futures modifications des bibliothèques. Cela rendrait également votre code plus facile à lire.
À moins que je ne manque quelque chose, mbstowcs
et wcstombs
n'ont rien à voir avec ça. Ils sont pour convertir entre Unicode et multiple. Il semble que toutes vos affaires sont Unicode.