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 24-09-2007 13:21:43

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

declaration d'une fonction external sous pb11

Salut à tous !

Savez-vous pourquoi, sur la version de pb10.5 ou 11, il faut declarer toutes les fonctions external sous cette forme ?   ... alias for "ItnGetNodeCoordinates;Ansi"
il me semble, d'apres constatation, qu'on est pas obligé de le faire pour tous ... par exemple, si une fonction external ne comporte que des arguments de type integer...
par contre, j'ai remarqué, que c'etait obligatoire, lorsqu'il y a un argument de type string.

est-ce du à l'unicode ?

merci de m'eclaircir un peu plus 

d'avance...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#2 24-09-2007 13:40:56

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

Re: declaration d'une fonction external sous pb11

parceque ces versions de PB sont par défaut en Unicode.


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

 

#3 24-09-2007 13:46:48

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: declaration d'une fonction external sous pb11

pick ouic a écrit:

est-ce du à l'unicode ?

Oui !
Je confirme ce que dis Rincevent.

";Ansi" sert à dire que la dll n'est pas unicode mais Ansi
On peut s'en passer en utilisant la version W d'une API à la place de la version A

Exemples :

Code: pb

Function Boolean SystemParametersInfo1 (uLong uiAction, uLong uiParam, REF String lpvParam &
, uLong fWinIni) Library "user32.dll" Alias For "SystemParametersInfoA;Ansi"

Function Boolean SystemParametersInfo2 (uLong uiAction, uLong uiParam, REF String lpvParam &
, uLong fWinIni) Library "user32.dll" Alias For "SystemParametersInfoW"

never let people work on more than one thing at once.

Hors ligne

 

#4 24-09-2007 13:53:15

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: declaration d'une fonction external sous pb11

et ca ?

Code: pb

Function uInt SendMessageA (int Handle, long Command, long Mess, int anyp) Library "user32.dll"

tu l'as essayé ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 24-09-2007 13:57:17

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: declaration d'une fonction external sous pb11

Non, désolé.

En faits, j'avais un besoin impératif de SystemParametersInfo vu que là où je bosse c'est interdit de changer le fond d'écrans


never let people work on more than one thing at once.

Hors ligne

 

#6 24-09-2007 14:04:03

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: declaration d'une fonction external sous pb11

en fait, je fais une migration d'une appli  de pb7 à pb11.
tout en cochant l'option qui permet de redeclarer automatiquement les fonctions external.

voila ce que j'ai :

Code: pb

// Window functions
Function ulong GetWindowTextA(ulong handle, ref string wintext, ulong length) Library "USER32.DLL" alias for "GetWindowTextA;Ansi"
Function ulong GetWindowsDirectoryA (ref string dirtext, ulong textlen) library "KERNEL32.DLL" alias for "GetWindowsDirectoryA;Ansi"
Function ulong GetSystemDirectoryA (ref string dirtext, ulong textlen) library "KERNEL32.DLL" alias for "GetSystemDirectoryA;Ansi"
Function ulong FindWindowA( ref string lpClassName, ref string lpWindowName) Library "USER32.DLL" alias for "FindWindowA;Ansi"

// User/computer information
function boolean GetUserNameA(ref string  lpBuffer, ref ulong nSize) library "ADVAPI32.DLL" alias for "GetUserNameA;Ansi"
function boolean GetComputerNameA(ref string  lpBuffer, ref ulong nSize) library "KERNEL32.DLL" alias for "GetComputerNameA;Ansi"

// Get text size
Function boolean SystemParametersInfoA(uint wActon, uint wParam, REF int pvParam, uint fUpdateProfile) Library "USER32.DLL"
Function ulong GetDC(ulong hWnd) Library "USER32.DLL"
Function long ReleaseDC(ulong hWnd, ulong hdcr) Library "USER32.DLL"
Function boolean GetTextExtentPoint32A(ulong hdcr, string lpString, long nCount, ref os_size size) Library "GDI32.DLL" alias for "GetTextExtentPoint32A;Ansi"
Function ulong SelectObject(ulong hdc, ulong hWnd) Library "GDI32.DLL"


comme tu peux le voir, il ne le fait pas pour toutes les fonctions externals.
donc, je cherche la raison du pourquoi ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 24-09-2007 14:21:41

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: declaration d'une fonction external sous pb11

pick ouic a écrit:

...
comme tu peux le voir, il ne le fait pas pour toutes les fonctions externals.
donc, je cherche la raison du pourquoi ?

Mais tu avais déjà trouvé :

pick ouic a écrit:

j'ai remarqué, que c'etait obligatoire, lorsqu'il y a un argument de type string

Puisque cette histoire d'Unicode ne concerne que les Strings


never let people work on more than one thing at once.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22