Bonjour,
J'ai l'impression que l'utilisation avec Lazarus d'une bibliothèque écrite en C/C++ est compliquée.
Je souhaite utiliser certaines fonctions ou procedures provenant d'une bibliothèque en C/C++.
J'ai créé une bibliothèque de test (MyLib.lib) que j'ai ajoutée au projet (Projet -> Inspecteur de projet)
Le code source en C/C++ (fait avec une ancienne version de Borland Builder C++ 6) :
la bibliothèque est créée avec l'option DLL en C++
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 extern "C" __declspec(dllexport) __cdecl void MonTest(char *Msg); //--------------------------------------------------------------------------- void __cdecl MonTest(char *Msg) { strcpy(Msg, "Mon premier Test : MyLib.lib"); }
Dans Lazarus (2.0.12) : Sur le formulaire, j'ai placé un bouton pour appeler la procédure MonTest :
la déclaration de la procédure :
A l'exécution du programme de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure MonTest(Msg:String);cdecl;external 'MyLib.lib' name 'MonTest'; // la procedure MonTest() : procedure TForm1.Button1Click(Sender: TObject); VAR s:String; begin s:=''; MonTest(s); ShowMessage(s); end;
j'ai l'erreur suivante :
Merci pour un conseil de débogage.
Cordialement
Partager