AGB  ·  Datenschutz  ·  Impressum  







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

Wie kann ich eine C++ DLL nutzen?

Ein Thema von divBy0 · begonnen am 6. Apr 2009 · letzter Beitrag vom 13. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#1

Wie kann ich eine C++ DLL nutzen?

  Alt 6. Apr 2009, 14:35
Hallo,

also ich würde gerne eine DLL nutzen, die mit C++ erstellt wurde.
Da ich das bisher noch nie gemacht habe wollte ich mal fragen, was man beachten sollte.

Meine ersten Versuche die Funktionen der DLL von einem C#-Wrapper nach Delphi zu portieren, endeten in einer Schutzverletzung.

Als Beispiel:

Aus dem C#-Wrapper:

Code:
[DllImport("DMX4ALL.dll")]
public static extern bool CheckPort(int port);

Die Funktion habe ich dann mal so in Delphi übernommen:

Delphi-Quellcode:
interface
  function CheckPort(port: Integer): Boolean; stdcall;

implementation
  function CheckPort(port: Integer): Boolean; stdcall; external 'DMX4ALL.DLL';
Kann mir mal bitte jemand einen Wink in die richtige Richtung geben?

Danke!
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Wie kann ich eine C++ DLL nutzen?

  Alt 6. Apr 2009, 15:06
Wo willst du die DLL jetzt nutzen, in Delphi oder C#?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Wie kann ich eine C++ DLL nutzen?

  Alt 6. Apr 2009, 15:08
Sorry,

in Delphi will ich die nutzen. Für C# ist eine Wrapper-Klasse dabei.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Wie kann ich eine C++ DLL nutzen?

  Alt 6. Apr 2009, 15:17
Halo,

Ist ja ne richtige c++ DLL, guck sn.

Bsp.-e

Auf der Seite nach DMX4ALL Delphi Sample suchen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Wie kann ich eine C++ DLL nutzen?

  Alt 6. Apr 2009, 15:49
Na toll, ich hatte beim Hersteller nachgefragt und laut denen gibt es keine Delphi-Version.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Wie kann ich eine C++ DLL nutzen?

  Alt 6. Apr 2009, 15:51
Hallo,

also ich habe einfach mal in google was eingetippt ...


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Wie kann ich eine C++ DLL nutzen?

  Alt 6. Apr 2009, 16:02
Das mache ich normalerweiße auch, habe mich hierbei allerdings wirklich nur auf den Hersteller verlassen.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#8

Re: Wie kann ich eine C++ DLL nutzen?

  Alt 6. Apr 2009, 16:22
Div was hast du den für ein Projekt vor.

Den Lichttechnik ist auch eines meiner Lieblingsthemen.

http://www.quantendrehung.de/cms/ueb...echniker-jobs/
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Wie kann ich eine C++ DLL nutzen?

  Alt 6. Apr 2009, 16:36
Das soll erst mal eine kleine Steuerung für eine LED-PAR-Matrix werden, vorgesehen sind 8x8 LED-PAR64.
Ist im Moment nur als Spielerei gedacht, ob das für den Bühneneinsatz taugt wird sich dann zeigen.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Wie kann ich eine C++ DLL nutzen?

  Alt 12. Apr 2009, 19:58
@hoika: Das Beispiel was du gefunden hattest ist leider schon älter und arbeitet mit einer anderen DLL.

Jetzt habe ich fast alle Funktionen der DLL in meiner Unit fertig. Allerdings habe ich eine Frage zu einem Record.

In der C-Header-Datei ist folgendes implementiert:

Code:
typedef struct structVersionInfoStruct
{
   char      InterfaceInfo[500];
   DWORD      HW_Version;
   DWORD      NrOfDmxData;
   BOOL      SignalOutput;
   BYTE      MergeMode;
   WORD      MergeStart;
   WORD      MergeStop;
} VERSION_INFO;

Meine Anpassung sieht so aus:

Delphi-Quellcode:
type TVersionInfo = record
  InterfaceInfo: Array[0..499] of Char;
  HW_Version: DWORD;
  NrOfDmxData: DWORD;
  SignalOutput: Boolean;
  MergeMode: Byte;
  MergeStart: WORD;
  MergeStop: WORD;
end;
Ist die Definition von InterfaceInfo als Array of Char so richtig?
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:59 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