GetComputerNameEx [Résolu]

deck_bsd 1244 Messages postés jeudi 31 mars 2005Date d'inscription 3 août 2016 Dernière intervention - 26 août 2006 à 12:00 - Dernière réponse : deck_bsd 1244 Messages postés jeudi 31 mars 2005Date d'inscription 3 août 2016 Dernière intervention
- 26 août 2006 à 14:23
Bonjour à tous,

Voila je tente d'utiliser la fonction GetComputerNameEx() , mais voila , j'ai une erreur de "linkage" il dit en gros que la fonction est inconnue. Je me suis dit bon, c'est p-e le compilo je vais esseye un autre ( en l'occurence GCC sous codes::block), mm chose ... .Donc ce n'est pas un inccident isolé :p . Voila mon code , je ne voi absolument pas ce qui est mal fait :

#define _WIN32_WINNT 0x0500 // pour le ifdef dans winbase.h

[...]

char szBuffer[120];
DWORD dwSize = 120;

GetComputerNameEx((COMPUTER_NAME_FORMAT)2,szBuffer,&dwSize);
SendMessage(hwnd,szBuffer,"result :",MB_OK);

[...]

Merci d'avance.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 26 août 2006 à 12:36
3
Merci
Avec VC++ pas de problème. En fait c'est MinGW qui merde
Ils ont oublié de redéfinir GetComputerNameEx en GetComputerNameExA ou GetComputerNameExW (comme on le fait pour toutes les API).
Donc remplace ton GetComputerNameEx par GetComputerNameExA ou GetComputerNameExW si ton projet est en Unicode

_____________________________________
Un éditeur de ressources gratuit pour Windows

Merci vecchio56 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de vecchio56
Meilleure réponse
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 26 août 2006 à 12:59
3
Merci
#ifdef UNICODE
#define GetComputerNameEx  GetComputerNameExW
#else
#define GetComputerNameEx  GetComputerNameExA
#endif // !UNICODE

Voila les lignes qu'ils ont oublié de mettre, tu peux les ajouter dans ton winbase.h (pas terrible) ou dans un fichier de ton projet

_____________________________________
Un éditeur de ressources gratuit pour Windows

Merci vecchio56 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de vecchio56
AndreJAO 24 Messages postés samedi 15 mai 2004Date d'inscription 2 septembre 2007 Dernière intervention - 26 août 2006 à 12:47
0
Merci
if(!GetComputerName(szBuffer,&dwSize))
NULL;//traitement d'erreur à prévoir
else
SendMessage(hwnd,szBuffer,"result :",MB_OK);
Voila qui ne devrait pas poser problème
Commenter la réponse de AndreJAO
deck_bsd 1244 Messages postés jeudi 31 mars 2005Date d'inscription 3 août 2016 Dernière intervention - 26 août 2006 à 12:55
0
Merci
Merci vecchio , cela fonctionne. Je ne sais pas , je demande, n'y a-t-il pas moyen de corriger cette erreur et de redéfinier GetComputerNameEx ?
Commenter la réponse de deck_bsd
deck_bsd 1244 Messages postés jeudi 31 mars 2005Date d'inscription 3 août 2016 Dernière intervention - 26 août 2006 à 13:19
0
Merci
Aussi simple que ça ? Je croyai que ce genre de chose était hors de ma portée lol. Merci vecchio :D
Commenter la réponse de deck_bsd
AndreJAO 24 Messages postés samedi 15 mai 2004Date d'inscription 2 septembre 2007 Dernière intervention - 26 août 2006 à 13:20
0
Merci
Je suis curieux mais pourquoi GetComputerNameEx alors que GetComputerName répond au pb et ne pose pas de problème de dépendance ?
Commenter la réponse de AndreJAO
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 26 août 2006 à 13:23
0
Merci
To retrieve the DNS host name, DNS domain name, or the fully qualified DNS name,
call the [getcomputernameex.htm GetComputerNameEx] function

Les fonctions Ex offrent plus d'options que leurs version équivalentes non Ex
GetComputerNameEx ne pose pas de problème de dépendance, c'est juste le header winbase.h de MinGW qui n'est pas complet

_____________________________________
Un éditeur de ressources gratuit pour Windows
Commenter la réponse de vecchio56
deck_bsd 1244 Messages postés jeudi 31 mars 2005Date d'inscription 3 août 2016 Dernière intervention - 26 août 2006 à 14:23
0
Merci
C'est simple GetComputerName , ne renvoie que le nom netbios de la machine contrairement à GetComputerNameEx qui lui renvoie le nom netbios, le nom du pc ds le domaine ,...

Regarde ici :

msdn
Commenter la réponse de deck_bsd

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.