Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 14-05-2013 08:33:42

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Problème GetUserNameA

Bonjour,

J’ai un petit problème. La fonction « GetUserNameA » ne retourne pas le nom de l’utilisateur sur toutes les machines. C'est-à-dire dans des machines elle fonctionne et dans d’autres non.

D’avance merci pour votre aide

Cdt,


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#2 14-05-2013 08:54:43

Van  
Bienfaiteur du site
Award: bf
Lieu: mouvaux
Date d'inscription: 19-03-2013
Messages: 125
Pépites: 673
Banque: 41

Re: Problème GetUserNameA

Le deuxième paramétre a envoyé est la longueur du champ récupérant le nom d'utilisateur.

Est ce qu'il est suffisamment taillé? Et du cout, est ce que ça se plante pas sur les cas de nom les plus long?


Tant que ça bouge c'est pas mort, dans le doute frappe encore!
Ni dieu ni maître, sauf maître Kanter!

Hors ligne

 

#3 14-05-2013 09:35:39

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: Problème GetUserNameA

d'abord merci pour ta réponse
oui il est suffisamment taillé et le système ne se plante pas


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#4 14-05-2013 09:49:27

Geo  
Membre completement Geek
Lieu: Binche
Date d'inscription: 15-12-2008
Messages: 119
Pépites: 378
Banque: 0

Re: Problème GetUserNameA

Bonjour,

toutes les machines ont-elles la même config (OS,...) ? La(Les)quelle(s) ?
Quelle est la version de PB ?

Dernière modification par Geo (14-05-2013 09:52:06)


Rien ne sert de courir, il faut partir à point .

Hors ligne

 

#5 14-05-2013 09:58:39

Van  
Bienfaiteur du site
Award: bf
Lieu: mouvaux
Date d'inscription: 19-03-2013
Messages: 125
Pépites: 673
Banque: 41

Re: Problème GetUserNameA

Quand je parlais de "ça se plante" je parlais au sens ou l'appel à GetUserNameA ne retournais rien.

Donc oui est ce que tu est sur les même version OS/PB.
Au niveau de la déclaration de ta fonction externe, est ce que ton code comporte ou non "Ansi" dans l'alias? Ca peux être nécessaire selon ton cas de figure.

Dernière modification par Van (14-05-2013 09:59:21)


Tant que ça bouge c'est pas mort, dans le doute frappe encore!
Ni dieu ni maître, sauf maître Kanter!

Hors ligne

 

#6 14-05-2013 10:16:09

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: Problème GetUserNameA

y a  peut être pas de nom d'utilisateur configuré sur certaines machines ?


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#7 14-05-2013 10:39:59

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: Problème GetUserNameA

Oui j'ai le mème OS sur toutes les machine.
Oui j'ai bien un username crée dans toutes les machine.
Oui le code comporte "Ansi" dans l'alias

Code:

FUNCTION long GetUserNameA(ref string UserName, ref ulong BufferLength) LIBRARY "ADVAPI32.DLL" ALIAS for "GetUserNameA;Ansi"

Je travaille sur la version PB11.5


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#8 14-05-2013 11:06:43

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: Problème GetUserNameA

Si PB11.5, je préconise l'utilisation de GetUserNameW à la place de GetUserNameA, et supprimer le ";ansi" dans l'alias.
PB 11.5 est unicode (depuis PB10) et a tout à gagner d'utiliser des fonctions d'API en unicode, ça évite une conversion de chaîne inutile.

Pour ne pas modifier trop de code existant, on peut mettre "alias for GetUserNameW" en laissant GetUserNameA comme nom de fonction mais ça risque de tromper les programmeurs qui passeront derrière.

Sinon sans planter est-ce que le code de retour de GetUserNameA est 0 (erreur) ou différent de 0 (succès) ?


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#9 24-06-2013 23:33:34

PowerDestroyer  
Membre
Date d'inscription: 10-02-2012
Messages: 9
Pépites: 34
Banque: 0

Re: Problème GetUserNameA

Salut,

Moi, je fais comme ça :

Code: pb

uLong   lul_Size
String  ls_Username

lul_Size = 256
ls_Username = Space(256)

This.GetUserNameW(ls_Username, lul_Size)


..ça a toujours marché, je touche du bois, en même temps je suis jamais tombé sur un nom d'utilisateur très long...

Je suis d'accord avec seki sur la préférence aux appels en unicode (W) plutôt qu'ansi (A).
(En plus il y a pas de fonction SpaceA)

Dernière modification par PowerDestroyer (25-06-2013 09:21:26)

Hors ligne

 

#10 25-06-2013 07:21:54

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Problème GetUserNameA

Bonjour,
Pour des questions de lisibilité du code


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22