AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen

Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen

Ein Thema von Back2Code · begonnen am 14. Feb 2016 · letzter Beitrag vom 15. Feb 2016
Antwort Antwort
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#1

Delphi DLL + Formular - Und das Einbinden in andere Programmiersprachen

  Alt 14. Feb 2016, 22:41
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
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#2

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

  Alt 14. Feb 2016, 23:31
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?
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#3

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

  Alt 14. Feb 2016, 23:51
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
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#4

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

  Alt 15. Feb 2016, 09:33
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.
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#5

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

  Alt 15. Feb 2016, 11:48
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.
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
443 Beiträge
 
Delphi 2007 Professional
 
#6

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

  Alt 15. Feb 2016, 18:26
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).
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#7

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

  Alt 15. Feb 2016, 21:32
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 ?
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
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 19:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf