Entwickler-Ecke

Programmierwerkzeuge - Delphi DLL in VB6 Projekt einbinden


stiftmaster - Do 23.06.05 23:53
Titel: Delphi DLL in VB6 Projekt einbinden
Hallo Leute,

ich habe mir die Tage eine kleine DLL in Delphi 7 programmiert und binde die nun auch in meiner Applikation ein - das läuft soweit ganz gut. Ein Freund von mir programmiert zur Zeit etwas in VB6. Da er einen Teil meiner DLL gut gebrauchen könnte, wollte ich fragen, ob ich die ihm einfach schicken kann und er die dann ohne Probleme einbinden kann (wenn ich ihm die Deklarationen nenne)? Oder kann eine DLL nur von dem Programm verwendet werden, in dem es auch programmiert ist?

Danke für eure Antwort

Stefan

Moderiert von user profile iconTino: Titel geändert.
Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Fr 24.06.2005 um 09:35


retnyg - Fr 24.06.05 00:17

klar, die dll kannst du in nahezu jeder programmiersprache verwenden.


stiftmaster - Fr 24.06.05 09:03

na, das freut mich ja zu hören - dann ist ja mein Teil der Programmierung schon so gut wie abgeschlossen :-)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
library Project1;

function TestFunction(Value: PChar): WideString; stdcall;
var
begin
  Result := Value;
end;

exports
  TestFunction;

begin

end.


es weiß nicht rein zufällig jemand, wie man diese Funktion dann in VB6 aufrufen kann - mein Kollege hat nämlich leider noch keiner Erfahrung mit der DLL-Programmierung :-(

Stefan

Moderiert von user profile iconChristian S.: Such- durch Delphi-Tags ersetzt *g*


retnyg - Fr 24.06.05 09:14


Quelltext
1:
Declare Function Funktionsname Lib "DLL_DATEINAME" ( ByVal Parameter As Typ) As Typ                    

dann halt noch im code mit funktionsname aufrufen.


nelle - Fr 24.06.05 09:51

Genau: Für Dein Beispiel wäre Folgendes in einer VB6 - Moduldatei zu schreiben:

Quelltext
1:
Declare Function TestFunction Lib "Project1.DLL" (ByVal Value As String) As String                    


Nelle


BenBE - Fr 24.06.05 09:56

In DLLs solltest Du generell auf die Nutzung von AnsiString und WideString verzichten, da diese Typen von VB nicht vollständig unterstützt werden. Nimm dazu PChar, den versteht auch VB ...


stiftmaster - Fr 24.06.05 19:13

Hallo Leute,

ich habe nun in VB6 folgendes kurzes Programm zum Testen benutzt. wenn ich dann das Programm starte, stürzt ganz VB ab. Ich weiß jetzt leider nicht, ob es an meiner DLL liegt, oder ob die einfach falsch in VB6 eingebunden wird.


Quelltext
1:
2:
3:
4:
Private Declare Function EncodeString Lib "D:\Project1.dll" (ByVal Value, Key As String) As String
Private Sub Command1_Click()
  Text1.Text = EncodeString("test", "1")
End Sub


Vielen Dank für eure Mühe

Stefan


Sprint - Sa 25.06.05 01:49

Zitat:
Function EncodeString Lib "D:\Project1.dll" (ByVal Value, Key As String) As String



Delphi-Quelltext
1:
function EncodeString(Value, Key: PChar): WideString; stdcall;                    


Quelltext
1:
Private Declare Function EncodeString Lib "project1.dll" (ByVal Value As String, ByVal Key As String) As String