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

[Résolu]
Signaler
Messages postés
248
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
22 juin 2008
-
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
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

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
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)
Messages postés
93
Date d'inscription
mardi 11 avril 2006
Statut
Membre
Dernière intervention
4 mars 2009

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.
Messages postés
248
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
22 juin 2008

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...