[Question de noob] Comment on declare une API en Delphi ?

Résolu
ratala Messages postés 248 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 22 juin 2008 - 16 janv. 2007 à 20:48
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 17 janv. 2007 à 00:41
Bonsoir :)
Je programme depuis longtemps en VB et j'ai eu l'idée de passer au delphi.
Quelqun pourrait me dire svp comment on declare une API ?
Et autre chose aussi, c'est quoi la constante qu'on met en argument pour dire qu'on met pas d'argument ?(si je suis pas clair dites le moi)
Merci d'avance.

3 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
17 janv. 2007 à 00:41
alors, deja, premierement, felicitation pour ton choix, ensuite n'oublis pas la Touche F1 dans delphi elle aide beaucoup.

certaines
fonctions systeme comme GetAsyncKeyState sont deja presente dans
l'unité Windows declarée a la ligne Uses dans l'interface du projet en
cours.

sinon pour la question des parametres optionnel en delphi, c'est simple ils n'existent pas!
donc pas de VOID dans delphi.

si par exemple tu as :

// int bidule( pointer usedptr; pointer unusedptr) {}
function bidule(usedptr : pointer; unusedptr : pointer) : integer;

tu fait juste a l'appel :
MonInteger :bidule(MonPointeur, nil); //nil null

si une fonction n'as pas d'arguments :

// int bidule(void) {}
function biduble : integer;

on l'appel simplement comme cela :

MonInteger := Bidule;

si une fonction n'as pas de retour on utiliseras la procedure :

// void bidule(arguments) {}
procedure bidule(arguments);

et on l'utiliseras comme ça :

bidule(arguments);

ensuite pour utiliser une fonction dans une dll, au plus simple tu peut faire par exemple :

partie Interface : (publique)

function GetAsyncKeyState(vKey: Integer): SHORT; stdcall;
procedure AutreFonction(Param: Type); stdcall;

partie implementation : (privée)

function GetAsyncKeyState; external 'user32.dll' name 'GetAsyncKeyState';
procedure AutreFonction; external 'autre.dll' name 'AutreFonction';

<hr size="2" width="100%" />Croc (click me)
3
sylvunix Messages postés 93 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 4 mars 2009
16 janv. 2007 à 21:20
Bonsoir à toi ratala.

Tout d'abord félicitations pour ce choix. Est-ce une bonne résolution pour 2007 ?

Je pense qu'il serait difficile de te faire un cours complet sur Delphi en réponse à ton message. Par contre, tu trouveras un certain nombre de tutoriaux sur delphifr.

Je pense en particulier aux sections interface et implementation. Cela devrait peut-être répondre à ta première question.

Ensuite, le paramètre vide s'appelle nil en Delphi. J'espère que cela répond à ta seconde question. (Sinon pour la constante qu'on met en argument lors qu'on met pas d'argument, j'avoue que j'ai un peu de mal à suivre !).

Bonne chance.
0
ratala Messages postés 248 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 22 juin 2008
16 janv. 2007 à 21:35
Par exemple, quand on appelle la fonction MessageDlg et que certains argument sont optionels, si on ne veut pas les remplir, on met quoi dedans ?
Sinon pour la declaration d'API je ne demande pas quelque chose de compliqué, si quelqun aurait domander la meme chose en VB je lui aurai répondu :
Public Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer
pour l'api GetAsyncKeyState...
0
Rejoignez-nous