AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Delphi DLL und deren Import in C/C++

Delphi DLL und deren Import in C/C++

Ein Thema von c113plpbr · begonnen am 23. Jun 2007 · letzter Beitrag vom 8. Jul 2007
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#1

Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 18:26
Hi DP'ler,

ich versuche eine von mir in Delphi erstellte DLL in ein C/C++ Projekt im Visual Studio einzubinden.
Da ich sowas bisher noch nie zuvor gemacht hab, hab ich auch dementsprechend keine Ahnung. Ich hab mich daher ein wenig Informiert, und die einzige Möglichkeit eine DLL statisch einzubinden ist scheinbar eine .lib-Datei. Ich habe auch noch gelesen, dass man sich so ne lib-Datei mit dem Tool "implib" erstellen kann. Wenn ich die damit erstellte lib-Datei dann aber in Visual Studio einbinde (per #pragma comment(lib, "lib.lib") ), dann krieg ich immer noch den Fehler, dass ich einen Verweis auf ein nichtaufgelöstes Symbol in meinem Code habe.

Kennt jemand das Problem? Oder gibt es auch noch andere Möglichkeiten eine DLL statisch einzubinden oder eine lib-Datei zu erstellen?

danke,
Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.830 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 18:31
http://www.dsdt.info/tutorials/dlls/
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 18:40
Zitat von mkinzler:
http://www.dsdt.info/tutorials/dlls/
Is da irgendwo ein Teil drin, der mir sagt, wie ich ne Delphi DLL in ein C/C++ Projekt einbinden kann? Wenn ja, hab ich ihn nicht gefunden, und DLL's in Delphi kann ich bereits schreiben ...
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.830 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 18:46
Wenn du auf Delphispezialitäten wie Strings u.ä. im Interface verzichtest, kannst du die Dlls wie jede andere in C-Programme einbinden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 18:52
Zitat von mkinzler:
Wenn du auf Delphispezialitäten wie Strings u.ä. im Interface verzichtest, kannst du die Dlls wie jede andere in C-Programme einbinden.
Und genau darum geht es ja, wie geht das?! Delphi erstellt mir ja schliesslich keine lib-datei!
(Hast du dir eigentlich meinen ersten Post überhaupt durchgelesen?)
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.830 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 18:54
Nein in kann nämlich gar nicht Lesen
man könnte auch die Hilfer zum C-Kompiler Lesen und würde dann auf IMPLIB stossen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 19:04
Zitat von mkinzler:
Nein in kann nämlich gar nicht Lesen
Hab ich dir irgendwas getan? Oder bist du heut schlecht drauf?

Ich wollte dir nur sagen, dass die Seite hinter dem Link den du gepostet hast mein Problem noch nichtmal anschneidet, genauso wie deine zweite Antwort.

Zitat von mkinzler:
man könnte auch die Hilfer zum C-Kompiler Lesen und würde dann auf IMPLIB stossen
Was für ein Problem ich damit habe habe ich doch erläutert, oder?

Und das lässt mich eben zu dem Schluss kommen, dass du meinen Post gar nicht erst durchgelesen hast. Ich will dich damit in keiner weise beschuldigen, aber ich denke, dass dies eben nahe liegt.
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.830 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 19:06
libs werden per Linker eingebunden.
Markus Kinzler
  Mit Zitat antworten Zitat
D.Schmidt

Registriert seit: 16. Apr 2006
3 Beiträge
 
#9

Re: Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 19:08
HI Philipp

zum Beispiel so:

in den Header schreibst du unter der privaten Deklaration

HINSTANCE DllInstance;

in deine Unit schreibst du es so:

if (!DllInstance)DllInstance = LoadLibrary("Test.dll"); // DLL Laden

if (DllInstance) Form1->Caption =" DLL wurde geladen ";
else
Form1->Caption = " DLL wurde nicht geladen ";


somit hast du die Delphi DLL geladen und kannst somit diese nutzen
um auf die Funktionen zuzugreifen schreibst du folgendes:

typedef PChar(_stdcall *IMPFUNC) ();

IMPFUNC DllFunktion;

if (DllInstance) {
DllFunktion = (IMPFUNC)GetProcAddress(DllInstance,"Der Name der Funktion hier eintragen");

if (DllFunktion) {
Memo1->Lines->Add(DllFunktion());

}
else
Memo1->Lines->Add("Funktionsname existiert nicht");
}
else
{
Memo1->Lines->Add("Bitte Dll laden");
}



somit kannst du unter C++ eine Delphi dll einbinden
ich habe die Delphi DLL in den BCB mit eingebunden und es funzt sehr gut

Daniel
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#10

Re: Delphi DLL und deren Import in C/C++

  Alt 23. Jun 2007, 19:19
Zitat von mkinzler:
libs werden per Linker eingebunden.
Wenn ichs per "/IMPLIB:libname.lib" mache, sagt mir der linker "fatal error LNK1136: Ungültige oder beschädigte Datei."
Ich denke, dass das Problem an meiner Lib-Datei liegt, die ich mir mit dem Borland implib-tool erstellt habe.

@D.Schmidt:
Du bindest in deinem Beispiel die DLL dynamisch zur Laufzeit ein, ich würde dies aber der Einfachheit halber gerne statisch machen (wobei ich an der "Einfachheit" dieser Methode langsam zu zweifeln anfange).
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf