![]() |
Virtual Basic Dll in Delphi aufrufen?
Hi,
ich möchte in Delphi eine in VB geschriebene Dll aufrufen, welche ich so mache:
Delphi-Quellcode:
So siehtz jetzt nur testweise die VB Dll aus:
function TForm1.LoadDll(Name:PChar;Plugin:String):PChar;
type TDLLFunc = procedure; var DLLHandle:THandle; Ret:PChar; func:TDllFunc; begin Ret := ''; DLLHandle:=LoadLibrary(PChar(ExtractFilePath(paramstr(0))+Plugin+'.dll')); if DLLHandle >= 32 then begin @func := GetProcAddress(DLLHandle,Name); if Assigned (func) then func; end; result:=Ret; end;
Delphi-Quellcode:
Was ist der Fehler?
Public Function start()
MsgBox "dll" End Function * Public Sub start2() MsgBox "dll" End Sub Ich vermute den Fehler im VB-Code da ich Delphi Dll´s damit ohne Probleme laden kann! Vlt kennt sich ja wer nen bissel mit VB aus und kann mir dabei helfen. |
Re: Virtual Basic Dll in Delphi aufrufen?
Zitat:
|
Re: Virtual Basic Dll in Delphi aufrufen?
die funktion der VB Dll wird nicht geladen/ausgeführt
ups^^ hatte ich vergessen zu sagen |
Re: Virtual Basic Dll in Delphi aufrufen?
Schau doch mal
![]() |
Re: Virtual Basic Dll in Delphi aufrufen?
so die dll is jetzt verändert:
Delphi-Quellcode:
aber läuft immer noch nicht mit folgender Funktion:
Public Function start() As String
MsgBox "dll" start = "moin" End Function * Public Sub start2() MsgBox "pdll" End Sub * Function DLLMain(ByVal a As Long, ByVal b As Long, ByVal c As Long) As Long *** DLLMain = 1 End Function * Sub Main() *** ' Dummy End Sub Und die Export.def: LIBARY Project1 EXPORTS *start *start2
Delphi-Quellcode:
TDLLFunc = function:pchar; läuft auch nicht.
function TForm1.GetPluginInfo (Name : PChar; Plugin : String) : PChar;
type TDLLFunc = function:String; var DLLHandle:THandle; Ret:PChar; func:TDllFunc; begin Ret := ''; DLLHandle:=LoadLibrary(PChar(ExtractFilePath(paramstr(0))+Plugin+'.dll')); if DLLHandle >= 32 then begin @func := GetProcAddress(DLLHandle,Name); if Assigned (func) then// hier assigned(func)=false Ret:=pchar(func); end; result:=Ret; end; procedure TForm1.Button1Click(Sender: TObject); begin showmessage(GetPluginInfo('start','a')); end; |
Re: Virtual Basic Dll in Delphi aufrufen?
Hast du die Funktionen die du benutzen möchtest auch exportiert?
|
Re: Virtual Basic Dll in Delphi aufrufen?
angeblich hat er das gemacht:
Export.def: LIBARY Project1 EXPORTS start start2 hatte gerade noch meinen oberen beitrag editiert |
Re: Virtual Basic Dll in Delphi aufrufen?
Hast du das auch mal Schritt für Schritt über den Debugger analysiert? Welchen Wert hat DLLHandle? Und wo kommt da die 32 her? Sobald DLLHandle <> 0 ist, ist die Dll geladen.
|
Re: Virtual Basic Dll in Delphi aufrufen?
DLLHandle=285212672 den wert 32 hatte ich hier im Forum gefunden.
Ich bin mir ja fast sicher das es an der VB Dll liegt. Wärst du vlt so nett und würdest mir eine test Dll mit Source uppen? |
Re: Virtual Basic Dll in Delphi aufrufen?
Mein angegebener Link enthält doch ein
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz