![]() |
Wie kann ich eine C++ DLL nutzen?
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:
Kann mir mal bitte jemand einen Wink in die richtige Richtung geben?
interface
function CheckPort(port: Integer): Boolean; stdcall; implementation function CheckPort(port: Integer): Boolean; stdcall; external 'DMX4ALL.DLL'; Danke! |
Re: Wie kann ich eine C++ DLL nutzen?
Wo willst du die DLL jetzt nutzen, in Delphi oder C#?
|
Re: Wie kann ich eine C++ DLL nutzen?
Sorry,
in Delphi will ich die nutzen. Für C# ist eine Wrapper-Klasse dabei. |
Re: Wie kann ich eine C++ DLL nutzen?
Halo,
Ist ja ne richtige c++ DLL, guck sn. ![]() Auf der Seite nach DMX4ALL Delphi Sample suchen. Heiko |
Re: Wie kann ich eine C++ DLL nutzen?
Na toll, ich hatte beim Hersteller nachgefragt und laut denen gibt es keine Delphi-Version.
|
Re: Wie kann ich eine C++ DLL nutzen?
Hallo,
also ich habe einfach mal in google was eingetippt ... Heiko |
Re: Wie kann ich eine C++ DLL nutzen?
Das mache ich normalerweiße auch, habe mich hierbei allerdings wirklich nur auf den Hersteller verlassen.
|
Re: Wie kann ich eine C++ DLL nutzen?
Div was hast du den für ein Projekt vor.
Den Lichttechnik ist auch eines meiner Lieblingsthemen. ![]() |
Re: Wie kann ich eine C++ DLL nutzen?
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. |
Re: Wie kann ich eine C++ DLL nutzen?
@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:
Ist die Definition von InterfaceInfo als Array of Char so richtig?
type TVersionInfo = record
InterfaceInfo: Array[0..499] of Char; HW_Version: DWORD; NrOfDmxData: DWORD; SignalOutput: Boolean; MergeMode: Byte; MergeStart: WORD; MergeStop: WORD; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr. |
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-2025 by Thomas Breitkreuz