Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen (https://www.delphipraxis.net/188265-delphi-dll-formular-und-das-einbinden-andere-programmiersprachen.html)

Back2Code 14. Feb 2016 22:41

Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen
 
Ich hätte vor eine Delphi DLL zu schreiben die auch die VCL (Formular) enthält.

Meine erste Frage wäre, ob diese DLL sich problemlos von jeder anderen Windows-basierten Sprache laden ließe(z.b C#, C++, C, VB.net) oder ob es da schon gewisse Sachen gibt die man beachten müsste?

Wenn ich jetzt z.B vor hätte die DLL als erstes starten zu lassen, während die DLL noch das Hauptprogramm "sperrt" und erst durch eine Überprüfung (Login/Key ...) freigeschaltet wird. Oder ist das technisch überhaupt nicht möglich?

Grüße

geskill 14. Feb 2016 23:31

AW: Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen
 
Wenn du bei den Datentypen auf COM-basierte (Widestring, WordBool, ...) zurückgreifst, als Aufrufkonvention safecall oder cdecl benutzt und die DLL innerhalb des UI threads des Host-Programms aufrufst, dann sollte dies klappen.

Wäre es nicht einfacher das Formular innerhalb des Host-Programms zu halten und nur die "Logik" in die DLL auszulagern?

Back2Code 14. Feb 2016 23:51

AW: Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen
 
Zitat:

Zitat von geskill (Beitrag 1330345)
Wenn du bei den Datentypen auf COM-basierte (Widestring, WordBool, ...) zurückgreifst, als Aufrufkonvention safecall oder cdecl benutzt und die DLL innerhalb des UI threads des Host-Programms aufrufst, dann sollte dies klappen.

Wäre es nicht einfacher das Formular innerhalb des Host-Programms zu halten und nur die "Logik" in die DLL auszulagern?

Du meinst also pro Sprache erstelle ich dann das Formular jeweils in der dortigen IDE und dem Projekt? Ist halt Mehraufwand, wäre besser wenn man das Formular nur einmal einsatzbereit machen muss

geskill 15. Feb 2016 09:33

AW: Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen
 
Du hast ja nicht gesagt, wie komplex das Formular sein soll. Aber wenn es nur ein klassisches Loginformular werden soll, dann ist das in WPF oder Swing schnell zusammengebaut. GUI geht ja meistens schnell :)

Zudem hast du nicht diesen Übergang zwischen WPF Formular und VCL. Man sieht schon den Unterschied zwischen Java und Delphi ist das nochmals stärker. Wenn du in deiner Host-Anwendung dann noch irgendwelche Skins benutzt ...

Oder du machst eine Zwischenlösung. Du erstellst zwei Funktionen in der DLL, jeweils mit und ohne VCL. Je nachdem implementiert du in der Host-Anwendung dann ein Formular oder eben nicht.

Back2Code 15. Feb 2016 11:48

AW: Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen
 
Zitat:

Zitat von geskill (Beitrag 1330367)
Du hast ja nicht gesagt, wie komplex das Formular sein soll. Aber wenn es nur ein klassisches Loginformular werden soll, dann ist das in WPF oder Swing schnell zusammengebaut. GUI geht ja meistens schnell :)

Zudem hast du nicht diesen Übergang zwischen WPF Formular und VCL. Man sieht schon den Unterschied zwischen Java und Delphi ist das nochmals stärker. Wenn du in deiner Host-Anwendung dann noch irgendwelche Skins benutzt ...

Oder du machst eine Zwischenlösung. Du erstellst zwei Funktionen in der DLL, jeweils mit und ohne VCL. Je nachdem implementiert du in der Host-Anwendung dann ein Formular oder eben nicht.


Login/Registrierung ein paar Requests zu einer Datenbank.

dummzeuch 15. Feb 2016 18:26

AW: Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen
 
Ich habe ziemlich genau sowas mal gemacht, damals noch mit Delphi 7. Die DLL wurde dann aus Visual Basic 6 und aus anderen Delphi-Programmen heraus aufgerufen. (Was anderes haben wir in der Firma damals nicht benutzt).

Wichtig dabei ist die Aufrufkonvention (ich habe stdcall verwendet, weil das das einzige war, was Visual Basic konnte, und die meisten anderen Sprachen das auch irgendwie hinbekommen) und dass die Parameter keine Speicherverwaltung benoetigen (PAnsiChar und einfache Typen).

Back2Code 15. Feb 2016 21:32

AW: Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen
 
Zitat:

Zitat von dummzeuch (Beitrag 1330434)
Ich habe ziemlich genau sowas mal gemacht, damals noch mit Delphi 7. Die DLL wurde dann aus Visual Basic 6 und aus anderen Delphi-Programmen heraus aufgerufen. (Was anderes haben wir in der Firma damals nicht benutzt).

Wichtig dabei ist die Aufrufkonvention (ich habe stdcall verwendet, weil das das einzige war, was Visual Basic konnte, und die meisten anderen Sprachen das auch irgendwie hinbekommen) und dass die Parameter keine Speicherverwaltung benoetigen (PAnsiChar und einfache Typen).

Könntest du da eventuell mal nen Samplecode posten :-)?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 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