AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Virtual Basic Dll in Delphi aufrufen?
Thema durchsuchen
Ansicht
Themen-Optionen

Virtual Basic Dll in Delphi aufrufen?

Ein Thema von gandime · begonnen am 31. Jan 2009 · letzter Beitrag vom 28. Mär 2009
Antwort Antwort
Seite 1 von 3  1 23      
gandime
(Gast)

n/a Beiträge
 
#1

Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 16:47
Hi,
ich möchte in Delphi eine in VB geschriebene Dll aufrufen, welche ich so mache:
Delphi-Quellcode:
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;
So siehtz jetzt nur testweise die VB Dll aus:
Delphi-Quellcode:
Public Function start()
MsgBox "dll"
End Function
*
Public Sub start2()
MsgBox "dll"
End Sub
Was ist der Fehler?
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.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 16:52
Zitat von gandime:
Was ist der Fehler?
Die Frage must du beantworten. Was geht denn nicht? Was ist der Fehler?
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#3

Re: Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 16:55
die funktion der VB Dll wird nicht geladen/ausgeführt
ups^^ hatte ich vergessen zu sagen
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 17:03
Schau doch mal hier.
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#5

Re: Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 17:45
so die dll is jetzt verändert:
Delphi-Quellcode:
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
aber läuft immer noch nicht mit folgender Funktion:
Delphi-Quellcode:
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;
TDLLFunc = function:pchar; läuft auch nicht.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 17:49
Hast du die Funktionen die du benutzen möchtest auch exportiert?
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#7

Re: Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 17:50
angeblich hat er das gemacht:
Export.def:

LIBARY Project1
EXPORTS
start
start2

hatte gerade noch meinen oberen beitrag editiert
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 18:00
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.
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#9

Re: Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 18:08
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?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Virtual Basic Dll in Delphi aufrufen?

  Alt 31. Jan 2009, 18:13
Mein angegebener Link enthält doch ein Beispiel Projekt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz