Hallo DLL-Experten!
Ich möchte die Ergebnisse einer Berechnung aus einer Delphi 5 - Procedure mit mehreren Variablen-Parametern (PChar, Double und LongInt) über eine DLL an Excel 2000 übergeben.
Dabei habe ich alle mir bekannten Ratschläge des Entwickler-Forums beachtet, dennoch stürzt Excel regelmäßig ab. Manchmal konnte ich einige der Parameter in Excel sehen, jedoch niemals den ersten Text. Seit einigen Stunden kommt nur eine lapidare Fehlermeldung, wonach die Anweisung in „0x778cd91f“ verweist auf den Speicher in „0xc60440c7“ und Excel verabschiedet sich lautlos.
Das Buch „Delphi Win32 Lösungen“ konnte mir leider auch nicht weiter helfen.
Wer könnte mir helfen? Ich bin kurz vor der Verzweiflung!
Danke im Voraus!
Gruß, Andreas Bittner
Anbei das komplette Delphi- und Excel-Listing:
Delphi:
<PRE>
library Excel_Test_DLL; <BR>
uses
SysUtils, Classes, Windows;
Procedure StringTransfer1(VAR S1, S2, S3, S4: PChar; Var Z1, Z2 : Double; VAR I1, I2 : LongInt); stdcall;
Begin
S1 := 'Das ist der erste Text als PChar';
S2 := 'Das ist der zweite Text als PChar';
S3 := 'Das ist der drittre Text als PChar';
S4 := 'Das ist der vierte Text als PChar';
Z1 := 1111.11111;
Z2 := -0.2222222;
I1 := 504;
I2 := 2050;
end;
exports
StringTransfer1 ;
begin
end.
Excel:
Declare Sub StringTransfer1 Lib "D:\Eigene Dateien\DELPHI\MyDLLs\Excel_Test_DLL.dll" _
(S1 As String, _
S2 As String, _
S3 As String, _
S4 As String, _
Z1 As Double, _
Z2 As Double, _
I1 As Long, _
I2 As Long)
Sub TestStringTransfer1()
Dim SS1 As String
Dim SS2 As String
Dim SS3 As String
Dim SS4 As String
Dim ZZ1 As Double
Dim ZZ2 As Double
Dim II1 As Long
Dim II2 As Long
StringTransfer1 SS1, SS2, SS3, SS4, ZZ1, ZZ2, II1, II2
MsgBox SS1
MsgBox SS2
MsgBox SS3
MsgBox SS4
MsgBox ZZ1
MsgBox ZZ2
MsgBox II1
MsgBox II2
End Sub
</PRE>
Ich möchte die Ergebnisse einer Berechnung aus einer Delphi 5 - Procedure mit mehreren Variablen-Parametern (PChar, Double und LongInt) über eine DLL an Excel 2000 übergeben.
Dabei habe ich alle mir bekannten Ratschläge des Entwickler-Forums beachtet, dennoch stürzt Excel regelmäßig ab. Manchmal konnte ich einige der Parameter in Excel sehen, jedoch niemals den ersten Text. Seit einigen Stunden kommt nur eine lapidare Fehlermeldung, wonach die Anweisung in „0x778cd91f“ verweist auf den Speicher in „0xc60440c7“ und Excel verabschiedet sich lautlos.
Das Buch „Delphi Win32 Lösungen“ konnte mir leider auch nicht weiter helfen.
Wer könnte mir helfen? Ich bin kurz vor der Verzweiflung!
Danke im Voraus!
Gruß, Andreas Bittner
Anbei das komplette Delphi- und Excel-Listing:
Delphi:
<PRE>
library Excel_Test_DLL; <BR>
uses
SysUtils, Classes, Windows;
Procedure StringTransfer1(VAR S1, S2, S3, S4: PChar; Var Z1, Z2 : Double; VAR I1, I2 : LongInt); stdcall;
Begin
S1 := 'Das ist der erste Text als PChar';
S2 := 'Das ist der zweite Text als PChar';
S3 := 'Das ist der drittre Text als PChar';
S4 := 'Das ist der vierte Text als PChar';
Z1 := 1111.11111;
Z2 := -0.2222222;
I1 := 504;
I2 := 2050;
end;
exports
StringTransfer1 ;
begin
end.
Excel:
Declare Sub StringTransfer1 Lib "D:\Eigene Dateien\DELPHI\MyDLLs\Excel_Test_DLL.dll" _
(S1 As String, _
S2 As String, _
S3 As String, _
S4 As String, _
Z1 As Double, _
Z2 As Double, _
I1 As Long, _
I2 As Long)
Sub TestStringTransfer1()
Dim SS1 As String
Dim SS2 As String
Dim SS3 As String
Dim SS4 As String
Dim ZZ1 As Double
Dim ZZ2 As Double
Dim II1 As Long
Dim II2 As Long
StringTransfer1 SS1, SS2, SS3, SS4, ZZ1, ZZ2, II1, II2
MsgBox SS1
MsgBox SS2
MsgBox SS3
MsgBox SS4
MsgBox ZZ1
MsgBox ZZ2
MsgBox II1
MsgBox II2
End Sub
</PRE>
Comment