AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C - lib Datei, DLL und Delphi

Ein Thema von MrSpock · begonnen am 3. Mär 2008 · letzter Beitrag vom 3. Mär 2008
Antwort Antwort
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#1

C - lib Datei, DLL und Delphi

  Alt 3. Mär 2008, 06:33
Hallo,

ich habe eine DLL mit einem API zu einer PCMCIA Karte. Gemäß Beschreibung des Herstellers habe ich mit importlib eine .lib Datei erzeugt, die ich auch Problemlos in den C-Code einbinden kann (einfach dem C++ Projekt hinzugefügt). Jetzt möchte ich diese API aber unter Delphi nutzen. Die DLL ist nicht registriert und ich kann sie deshalb auch nicht als Typbibliothek importieren. Wie komme ich an die Funktionen der DLL oder lib Datei heran? Muss ich eine C/C++ DLL schreiben, die die Aufrufe kapselt und diese in mein Delphi Projekt nutzen?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: C - lib Datei, DLL und Delphi

  Alt 3. Mär 2008, 06:35
Nein du kannst aber die c-Header-datei verwenden um dir eine Importdefinition für Delphi zu erstellen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3

Re: C - lib Datei, DLL und Delphi

  Alt 3. Mär 2008, 06:46
Hallo mkinzler,

meinst du die C-Strukturen und Funktionsaufrufe in Pascal Syntax übertragen?

Und dann die Funktion mit "external" deklarieren:

function myfunction(param1: Int; param2: string): int; external 'dieDLLvomHersteller.dll'; Gibt es dabei etwas bei der Parameterübergabe zu beachten, z.B. bei Strings?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: C - lib Datei, DLL und Delphi

  Alt 3. Mär 2008, 07:35
Du könntest auch HeadConv ansetzen
Strings sind ja PChar.
Markus Kinzler
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: C - lib Datei, DLL und Delphi

  Alt 3. Mär 2008, 12:17
Zitat von mkinzler:
Strings sind ja PChar.
Und die Aufrufkonvention ist cdecl in den meisten C-Fällen. Oder auch stdcall wenn das entsprechend bei der Headerdatei angegeben ist. Ohne Angabe auf der Delphi-Seite würde Delphi register verwenden, was hunderprozentig schief geht.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6

Re: C - lib Datei, DLL und Delphi

  Alt 3. Mär 2008, 15:05
Hallo,

danke für die guten Tipps. Werde ich nachher mal ausprobieren.

[update]Das Konvertiertool hat offensichtlich Probleme mit den vielen #ifdef oder #ifndef Anweisungen. Muss ich händisch noch eine Menge nacharbeiten.

Soll man #includes von anderen Headerdateien in Delphi über {$I ...} nachbilden oder über uses als eigene Datei ansprechen?[/update]
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:44 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