Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Visual Basic DLL in Delphi einbinden (https://www.delphipraxis.net/103775-visual-basic-dll-delphi-einbinden.html)

dtrace 21. Nov 2007 16:04


Visual Basic DLL in Delphi einbinden
 
Hallo zusammen,
ich habe ein großes Problem und zwar möchte ich eine erstelle DLL die in Visual Basic 6 geschrieben worden ist (kein ActiveX DLL) in delphi nutzen.

Ich habe die Funktionen so implementiert:

...

function rechne(n: Integer): Integer; stdcall; external 'test.dll';

...

sobald ich aber auf diese Funktion zugreife bekomme ich folgenden Fehler:
Access Violation at adress 7363C26F in module "MSVBVM60.DLL' Write of address 000009c

hmmm...was kann ich tun?

DP-Maintenance 21. Nov 2007 16:06

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Ist kein Beitrag für die Codelib...

sirius 21. Nov 2007 16:58

Re: Visual Basic DLL in Delphi einbinden
 
Muss es nicht so sein :gruebel:
Delphi-Quellcode:
function rechne(n: Integer): Integer; stdcall; external 'test.dll' name 'rechne';

dtrace 21. Nov 2007 17:02

Re: Visual Basic DLL in Delphi einbinden
 
hmm...funktioniert leider auch nicht, ich bekomme die selber Fehlermeldung

sirius 21. Nov 2007 17:24

Re: Visual Basic DLL in Delphi einbinden
 
Die Imports sind Case-Sensitive! Hast du darauf geachtet?
Ist die Aufrufkonvention "stdcall" richtig?

Ansonsten probiers erstmal dynamisch mit der Einbindung:
Delphi-Quellcode:
var lib:hmodule;
    rechne:function(n:Integer):integer; stdcall;
begin
  lib:=loadlibrary('test.dll');
  rechne:=getprocaddress(lib,'rechne');
  ...
  freelibrary(lib);
end;
Und gehe mal mit dem Debugger durch.

AliDi 21. Nov 2007 18:52

Re: Visual Basic DLL in Delphi einbinden
 
Hallo Dennis,

seit wann kann man in VB6 andere DLL's als ActiveX Dll's erstellen?

Soweit ich weiß geht das doch garnicht?


Gruß
AliDi

Elvis 21. Nov 2007 19:33

Re: Visual Basic DLL in Delphi einbinden
 
Zitat:

Zitat von AliDi
seit wann kann man in VB6 andere DLL's als ActiveX Dll's erstellen?
Soweit ich weiß geht das doch garnicht?

Geht auch nicht.

Er wird sie als TypeLib importieren müssen. Und er kann nur hoffen, dass sie nicht von einem VB'ler geschrieben wurde, sondern von einem Programmierer, der mit Waffengewalt zu VB gezwungen wurde...

sirius 21. Nov 2007 20:10

Re: Visual Basic DLL in Delphi einbinden
 
Zitat:

Zitat von Elvis
Und er kann nur hoffen, dass sie nicht von einem VB'ler geschrieben wurde, sondern von einem Programmierer, der mit Waffengewalt zu VB gezwungen wurde...

Diese dezenten "Hinweise".....

dtrace 22. Nov 2007 15:13

Re: Visual Basic DLL in Delphi einbinden
 
VB ist der letzte Scheiß *loL*

der Programmierer hat mir jetzt eine ActiveX DLL gemacht, klappt wunderbar.

Nur eine Frage: Wie kann ich erkennen ob die DLL bereits registriert ist?

shmia 22. Nov 2007 16:25

Re: Visual Basic DLL in Delphi einbinden
 
Zitat:

Zitat von dtrace
Nur eine Frage: Wie kann ich erkennen ob die DLL bereits registriert ist?

Das ist eigentlich nicht nötig.
Die letzte Registrierung bestimmt, welche DLL im System verankert ist (könnte ja sein, dass die DLL in versch. Pfaden liegt)
Ansonsten geht das mit folgender Funktion:
Delphi-Quellcode:
function ProgIDExists(const ProgID:WideString):Boolean;
var
   tmp : TGUID;
begin
   Result := Succeeded(CLSIDFromProgID(PWideChar(ProgID), tmp));
end;
Die ProgID ist z.B. "VBProjekt.Taschenrechner".


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr.
Seite 1 von 2  1 2      

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