J'ai besoin de transmettre une valeur HRESULT à un programme en tant qu'argument de ligne de commande. J'avais l'intention de le faire en passant la valeur hexadécimale, par exemple:Passage de HRESULT en tant que chaîne sur la ligne de commande
>receiver.exe 0x80048836
Je suis en train de convertir cette représentation de chaîne de retour dans un HRESULT en utilisant wcstol
, par exemple:
HRESULT hr = wcstol(argv[2], NULL, 16);
Cependant, la valeur de l'HRESULT d'origine est généralement supérieure à LONG_MAX
, donc dans la ligne ci-dessus hr
finit comme 0x7fffffff
.
Alors, deux questions:
Je pensais que HRESULTS étaient juste des entiers 32 bits? Donc je ne suis pas sûr de savoir comment je récupère un HRESULT supérieur à
LONG_MAX
. Il semble fonctionner correctement dans le programme d'origine, cependant (c'est-à-dire que le HRESULT ne déborde pas).Existe-t-il un moyen de contourner la restriction
LONG_MAX
dewcstol
? Peut-être qu'une autre version de la fonction qui correspond à n'importe quelle taille entière HRESULT est réellement?
Merci!