Convertir GUID structure de LPCSTR
Je suis en train de travailler avec l'API Win32 en C et ont un besoin de convertir un GUID structure en LPCSTR. Je suis relativement nouveau pour Win32 et n'ai pas trouvé beaucoup d'informations autour de ce type de conversion.
J'ai réussi à convertir GUID pour OLECHAR à l'aide de StringFromGUID2 fonction (voir le fragment de code ci-dessous), mais coincé sur la poursuite de la conversion à LPSCSTR. Je ne suis pas trop sûr que je me dirige dans la bonne direction avec OLECHAR mais au moment où il semble chose logique à faire.
GUID guid;
OLECHAR wszGuid[40] = {0};
OLECHAR szGuid[40]={0};
LPCSTR lpcGuid;
CoCreateGuid(&guid);
StringFromGUID2(&guid, wszGuid, _countof(wszGuid));
OriginalL'auteur user2177565 | 2013-09-01
Vous devez vous connecter pour publier un commentaire.
Le système d'exploitation ne prend pas en charge le formatage d'un GUID comme une chaîne Ansi directement. Vous pouvez les mettre en forme dans une chaîne Unicode en premier et ensuite le convertir en Ansi par la suite:
Ou vous pouvez utiliser
sprintf()
ou fonction similaire au format de la chaîne Ansi manuellement:Si la vitesse est un problème, utilisez un générateur de profils.
Je ne sais pas, mais je parie que la seconde est plus lent, car il n'est pas spécialisé, le
sprintf
doit analyser la chaîne d'entrée et de décider quoi faire avec les arguments supplémentaires, mais l'autre est exactement construit à cet effet. -- Le plus rapide serait de construire un nouveau de la fonction en utilisant la logique évidente dans la 2ème approche, qui se traduit par le GUID à la norme ANSI directement.OriginalL'auteur Remy Lebeau