Event aus dll an Hauptprogramm senden (Delphi)

OP #508984
Lesenswert?

Hi

Ich habe mir in Delphi Programmierroutinen für die Renesas Controller 
der H8 Familie geschrieben.

Nun möchte ich die Funktionen auch in anderen Programmiersprachen 
verwenden.
Hat mir jemand einen Tip, wie ich mit möglichst geringem Aufwand die 
Routinen in VB, C++ C# usw. zur Verfügung stellen kann und worauf ich 
dabei achten muss? (Dll, ActiveX, COM...)

Ich weiss auch noch nicht, wie ich die diversen Ereignisse während dem 
Programmiervorgang (Statusmeldungen, Fehlermeldungen und Fortschritts- 
Anzeige) aus dem Modul an das Hauptprogramm übergeben soll.

Für jeden Tip bin ich sehr dankbar.

Gruss Andy
Gast #509620
Lesenswert?

Es ist unklar was deine Frage ist.
>Nun möchte ich die Funktionen auch in anderen Programmiersprachen
>verwenden.
>Hat mir jemand einen Tip, wie ich mit möglichst geringem Aufwand die
>Routinen in VB, C++ C# usw. zur Verfügung stellen kann und worauf ich
>dabei achten muss? (Dll, ActiveX, COM...)
Antwort: (Dll,ActiveX,COM, ... = .Net)
Die Antwort steht schon in der Frage!

>Ich weiss auch noch nicht, wie ich die diversen Ereignisse während dem
>Programmiervorgang (Statusmeldungen, Fehlermeldungen und Fortschritts-
>Anzeige) aus dem Modul an das Hauptprogramm übergeben soll.
Antwort: bei .Net und COM Ereignisse(Events), bei DLL CallBack Routinen
Steht ebenfalls schon in der Frage...
Was ist die Frage???
Willst du jetzt hören, das bei Verwendung von VB6 nur Singlethreaded 
Apartments angesagt sind oder soll für Dich jemand der nicht genau weiß 
was du tust und kannst, für dich eine der Möglichkeiten auswählen?

>Kann mir wirklich niemand helfen? Es eilt und der Chef sitzt mir schon
>im Nacken mit dem Termin
Wenn dein Chef Dir im Nacken sitzt dann mach es auf die Weise wie du es 
bisher auch gelöst hast.
OP #509679
Lesenswert?

Hallo Wolfram

Danke für Deine Antwort.

Bei der ersten Frage meinte ich, welche der ganannten Möglichkeiten(Dll, 
ActiveX usw) die gebräuchlichste und universellste ist.
Ich habe noch nie sowas gemacht, da ich meine PC-Programme bis jetzt 
immer ausschliesslich in Delphi und für mich geschrieben habe.
Ich möchte das ganze jetzt nicht in eine Dll packen, wenn die ganze Welt 
vielleicht ActiveX Komponenten einsetzt.

Ausserdem habe ich wirklich keine Ahnung, wie man ein Event aus einem 
externen Modul an ein Hauptprogramm übergibt.
Der Ausdruck CallBack Routine ist ja schon mal ein Anfang um weiterzu 
kommen (falls ich mich dann für die Dll Variante entscheide)

"Wenn dein Chef Dir im Nacken sitzt dann mach es auf die Weise wie du es
bisher auch gelöst hast?!?"

Hatte das Problem ja bisher noch nie.
Gast #509700
Lesenswert?

eine DLL wird das so oder so auch bei ActiveXCOM Objekt. Mit DLL ist 
reine WindowsDLL gemeint.
Die Frage ist was für einen "Idioten" erwartest du auf der anderen 
Seite.
Oder Für wie "kompetent" hältst du die Programmierer die es einsetzen?
DLL Variante:
Vorteil: du könntest deine Funktionen unmittelbar nach außen geben.
Nachteil: wenn deine Funktionen nicht abgesichert sind oder der Nutzer 
die Doku nicht versteht und Funktionen in "ungünstiger" Weise/Abfolge 
benutzt, kracht es. Für VB Programmierer musst du wahrscheinlich gleich 
noch die
"Header Datei rausgeben die die Kapselung macht. Für C Programmierer 
würde ich die Headerdateien rausgeben. Wichtig keine unüblichen 
Datentypen verwenden!

COM Objekt:
Vorteil: Durch Darstellung als Objekt kannst du ungünstige 
Befehlsabfolgen absichern. Jedes Programm/Programmierer kann damit 
umgehen.
Nachteil: Das Objekt musst du entwerfen, inklusive Abstraktion und Doku 
der Verwendung der einzelnen Member. Wichtig nur COM Datentypen 
verwenden!

ActiveX Komponente:
Vorteil: auch für "absolute Idioten" benutzbar,da sich dein 
Flashprogramm
im günstigsten Fall im Fenster der Anwendung präsentiert. Also sowas wie 
Datei auswählen und ein Flashbutton.

Wie das ganze in Delphi geht, keine Ahnung habe es bisher nur in VB und 
C++ gemacht. Sollte aber eigentlich ähnlich einfach sein. Ich schätze 
den Aufwand zum erstellen eines einfachen Test COM Objektes/Controls auf 
unter
1Tag analog VB wenn man sich nicht auskennt aber den Rest beherrscht.




OP #509822
Lesenswert?

Hi Wolfram

Herzlichen Dank für Deine Ausführungen!

Ich habe gegen aussen nur eine Funktion.
In den Parametern übergebe ich dann Werte wie: CPU Familie, CPU Typ, 
Quarzfrequenz, Baudrate usw. und natürlich das zu Programierende Hex- 
File.
Damit läuft dann der ganze Programmiervorgang selbständig ab.

Während der Programmierung fallen dann in meinen Routinen Status und 
Fehlermeldungen an.

Vielleicht kannst Du mir noch einen Tip geben, wie ich dann aus dem 
Hauptprogramm rechtzeitig an diese Daten komme? (Dll- Variante)
Habe mal einen Versuch gemacht über eine StringListe, wo alle Events 
reingeschrieben wurden. Über einen Timer habe ich dann im Hauptprogramm 
diese StringListe dauernd ausgelesen und ein Memo Fenster damit 
gefüttert.
(Sicher die nicht die korrekte Methode)

Wahrscheinlich ist es aber das einfachste, die ganze Geschichte in eine 
ActiveX Komponente zu packen. Ich hoffe, ich blicke damit durch.
Gast #509882
Lesenswert?

>Ich habe gegen aussen nur eine Funktion.
>In den Parametern übergebe ich dann Werte wie: CPU Familie, CPU Typ,
>Quarzfrequenz, Baudrate usw. und natürlich das zu Programierende Hex-
>File.
>Damit läuft dann der ganze Programmiervorgang selbständig ab.
dann mach es mit einer Funktion, die am Schluß sagt hat geklappt oder 
hat nicht geklappt und warum nicht, dafür reicht die normale DLL. Wozu 
brauchst du da noch events?
Gast #510056
Lesenswert?

@Andreas Haeusler,
bei Delphi problemen sollte man sich an die Delphi community wenden. 
Ddie ist 24 Stunden auf dem borland server :

news://newsgroups.borland.com/....

Die Auswahl ist ersichtlich unter..
http://support.borland.com/entry.jspa?entryID=292
http://support.borland.com/entry.jspa?externalID=1175

weiter benoetigt man einen Newsreader, wie zB
thunderbird, oder ...

Auf den Newsfgroups hat es wirklich tonneweise kompetente Leute. Eine 
Antwort ist meist innert Minuten da. Alles andere ist Schrott.

Die Firma heisst nun Codegear, ein Managements furtz.

http://www.codegear.com

Rene

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren