Bonjour,
je souhaite développer une DLL afin de rendre accessibles mes fonctions Delphi à plusieurs programme.
Je teste ma DLL avec un projet Excel VBA et je rencontre certains problèmes dans les passages de paramètres : lors du lancement de la fonction EstVide, l'erreur suivante est levée :
Erreur d'exécution '-2147417848 (80010108)':
Erreur automation
L'Objet invoqué s'est déconnecté de ses clients.
Voici le code de ma DLL Delphi :
Code VBA utilisant la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 library LpFonctions; uses ComServ, SysUtils, Classes, UCompteur, UFonctions; {$R *.res} function ValeurSuivante(): Pchar; var zTmp: string; begin zTmp := UCompteur.ValeurSuivante; Result := PAnsiChar(zTmp); end; function EstVide(var sChaine: PChar): Boolean; begin Result := UFonctions.EstVide(sChaine); end; exports DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer, ValeurSuivante, EstVide; begin end.
Y-a-t-il une erreur d'utilisation de types dans les paramètres ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Declare Function ValeurSuivante Lib "C:\LpFonctions.dll" () As String Private Declare Function EstVide Lib "C:\LpFonctions.dll" (sChaine As String) As Boolean Private Sub CommandButton2_Click() Dim s1 As String If Not EstVide("1e2") Then TextBox1.Text = ValeurSuivante Else TextBox1.Text = "" End If End Sub
Partager