Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Visuell Basic DLL bei einer Delphi Anwendung verwenden (https://www.delphipraxis.net/45687-visuell-basic-dll-bei-einer-delphi-anwendung-verwenden.html)

gsh 10. Mai 2005 20:54


Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
HI Dpler

Ich habe des Problemm des ich eine Visuell Basic programmierte DLL habe die ich bei meinen Programm ansprechen will.
Versucht habe ich es schon mit:
Delphi-Quellcode:
implementation

{$R *.dfm}

function Compile(Programmzeile : String) : String; external '8051.dll';

procedure THaupt.Button1Click(Sender: TObject);
begin
  Label1.Caption := Compile(Edit1.Text);
end;
sobald ich dann meine Exe starte beklagt sich mein prog. des es den Prozedureinsprung "Compile" nicht findet.

Kann es sein des ich ein sdtcall (<- Keine Ahnung wie man des schreibt) brauche, wenn ja was muss ich dann im Visuell Basic hinschreiben des des funktioniert?

alzaimar 10. Mai 2005 21:09

Re: Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
Offensichtlich wird 'Compile' von der DLL nicht exportiert.

Chewie 10. Mai 2005 21:11

Re: Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
Es kann sein, dass du stdcall brauchst, du wirst auch PChar anstelle von String schreiben müssen, aber ganz abgesehen davon wird die Funktion auch nicht exportiert ;)
Vielleicht Gr0ß/Kleinschreibung nicht bedacht?

gsh 10. Mai 2005 21:18

Re: Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
Groß klein schreibung 1000 mal kontrolliert des passt.
Aber mein Freund sagt (er hat die DLL geschrieben) des er des zwar nicht exportiert hat aber irgend etwas hin geschrieben (ich was das das etwas ungenau ist aber ich weiss auch nicht mehr) hat des bewirkt des man vollen Zugriff auf die funktion hat. Außerdem hat er gesagt des er es mit seinen VB programmen ansbrechen kann wenn er des so hinschreibt.

Bernhard Geyer 11. Mai 2005 08:40

Re: Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
Besorg dir mal Dependency Walker und schau mal ob die DLL wirklich diese Funktion exportiert.
Die zweite Möglichkeit wäre natürlich das diese Funktion teil eines COM-Interfaces ist. Das kannst Du Testen, indem du versuchst für diese DLL über den Delphi-Menüpunkt "Projekt/Typbibliothek importieren", Button "Hinzufügen" die evtl. in der DLL vorhandene TLB zu importieren.

gsh 11. Mai 2005 17:23

Re: Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
Also wenn ich des bei dem Programm richtig gesehen habe dann ist von der DLL nicht freigegeben.
Und des mit der Typbibliothek importieren klingt sehr gut (ich glaube mein Freund macht des auch so (beim VB heisst es aber anders (glaub ich :roll: ))).
So mein Problemm ist jetzt nur noch des es bei D2005 kein "Projekt/Typbibliothek" importieren gibt. heisst des anders oder muss ich "Projekt/Dem Projekt hinzufügen" verwenden?
und wenn ich des dann importiert habe wie kann ich dann auf die Funktion zugreifen?

gsh 12. Mai 2005 14:18

Re: Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
*push*
:duck:

Robert Marquardt 12. Mai 2005 14:37

Re: Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
Hoer auf zu pushen und setze die Empfehlungen um.
Was sagt der DependencyWalker ueber die DLL? Was wird exportiert?

gsh 12. Mai 2005 18:15

Re: Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
Des hab ich ja schon geschrieben!
Zitat:

Also wenn ich des bei dem Programm richtig gesehen habe dann ist von der DLL nicht freigegeben.
Und des mit der Typbibliothek importieren klingt sehr gut (ich glaube mein Freund macht des auch so (beim VB heisst es aber anders (glaub ich :roll: ))).
So mein Problemm ist jetzt nur noch des es bei D2005 kein "Projekt/Typbibliothek" importieren gibt. heisst des anders oder muss ich "Projekt/Dem Projekt hinzufügen" verwenden?
und wenn ich des dann importiert habe wie kann ich dann auf die Funktion zugreifen?

shmia 12. Mai 2005 18:22

Re: Visuell Basic DLL bei einer Delphi Anwendung verwenden
 
Die alles entscheidende Frage:
ist es eine "normale" DLL oder ist es eine ActiveX-DLL ???


Eine ActiveX-DLL erkennt man daran, dass in der Schnellansicht (oder Dependency-Walker) nur folgende Exports zu sehen sind:
Code:
Export Table
   Name:   Convert.dll
   Characteristics:   00000000
   Time Date Stamp:   00000000
   Version:   0.00
   Base:   00000001
   Number of Functions:   00000004
   Number of Names:   00000004

Ordinal   Entry Point   Name
0002   0000d654            DllCanUnloadNow
0003   0000d610            DllGetClassObject
0001   0000d5e8             DllRegisterServer
0000   0000d5a0            DllUnregisterServer
In .NET werden ActiveX-DLLs über "Verweis hinzufügen" in die Assembly integriert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz