OLE Automation mit Typbibliotheken

Antworten
ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

OLE Automation mit Typbibliotheken

Beitrag von ErnstVolker »

Hallo zusammen,

kann man in Lazarus OLE-Automation mittels *.tlb Dateien durchführen? Also ich meine eine Typbibliothek laden, damit sich daraus die einzubindende Unit erzeugt.
Mit Delphi 7 Personal Edition ist mir das gelungen und ich konnte mein Zeichprogramm (DesignCad) prima damit fernsteuern. Da ich mein Progrämmchen gerne weitergeben (verschenken) würde und keinen Ärger haben will, dachte ich es auf Lazarus umzubauen und als OpenSource zu verteilen.
Ich hatte dann versucht die Unit in Lazarus einzubinden, was aber nicht so funtionieren wollte.

Dann hätte ich noch eine Frage:

Kann man über dll-Dateien andere Programme Starten und Steuern?
Mir schwebt vor, mein oben erwähntes Fernsteuerprogrämmchen so umzubauen, daß es für die durchzuführenden Berechnungen Scilab benutzt.
Also ein Lazarus GUI als Schnittstelle zwischen DesignCad und Scilab. Werte in GUI eingeben, Berechnungen in Scilab durchführen und Ergebnisse in DesignCad Zeichnen.

Kann mir jemand Tipps geben?

Für Antworten danke ich im Voraus

Gruß

Volker

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: OLE Automation mit Typbibliotheken

Beitrag von mschnell »

Soweit ich weiß, kann man mit Lazarus zwar sowohl dlls benutzen als auch dlls erzeugen, Lazarus kann aber nicht wie Delphi tlbs und andere Type-Libraries "importieren" (also automatisch Code für die Zugriffs-Funktionen erzeugen), die muss man wohl von Hand schreiben und der dll-Lieferant muss dazu natürlich eine schriftliche Doku liefern..

-Michael

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: OLE Automation mit Typbibliotheken

Beitrag von ErnstVolker »

Vielen Dank Michael!!

Ich hatt's schon fast geahnt daß es nicht geht.

Aber ich geh' mal davon aus, daß sich von Euch -mit an Sicherheit grenzender Wahrscheinlichkeit :wink:- jemand auch mit Java auskennt
und mir evtl. mitteilen kann ob das Einladen von diesen Typbibliotheken dort funktioniert. Ob das da die Entwicklungsumgebung z.B. Eclipse oder NetBeans übernehmen.

Bitte meckert nicht weil ich hir nach Java frage. Im Java-Forum gab's keine Antwort.

Dann hätt' ich da noch eine Frage:
Gibt es außer "HeadConv" noch irgendwie Programme, welche Zuverlässig aus C-Headerdatein in Units für Lazarus/Delphi umwandeln?
Ich frage deshalb, weil es mir neulich gelungen ist mit FPC eine DLL für SCILAB zu schreiben. Das ging leichter als mit C++ hatt' ich den Eindruck. Nur wenn man sich für SCICOS Blöcke Entwerfen möchte, sind in den C++ Quelltext spezielle Header (scicos.h, scicos_block.h) einzufügen. Sofern man die in "Units" sollte es kein Problem darstellen DLL-Funktionen für die Blöcke zu schreiben.
Mir fallen einfach Lazarus/Delphi/FPC wesentlich leichter als C/C++. Man entwickelt vor sich hin, drückt "F9" und es funzt (oder auch mal nicht ) :(

Vielen Dank für Eure Antworten und ein schönes Wochenende

-Volker

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: OLE Automation mit Typbibliotheken

Beitrag von Hitman »

ErnstVolker hat geschrieben:Aber ich geh' mal davon aus, daß sich von Euch -mit an Sicherheit grenzender Wahrscheinlichkeit :wink:- jemand auch mit Java auskennt
und mir evtl. mitteilen kann ob das Einladen von diesen Typbibliotheken dort funktioniert. Ob das da die Entwicklungsumgebung z.B. Eclipse oder NetBeans übernehmen.


Bei Java kommst du gar nicht an "irgendwelchen" nativen Code. Der native Code muss dann explizit für Java geschrieben werden (per JNI) und DANN kann er aus der JVM heraus aufgerufen werden. Es gibt einige Wrapper Bibliotheken (wie z.B. JACOB) um an COM Objekte zu kommen, aber zumindest in die IDEs wirst du das da nicht integriert kriegen. Ich nehme aber mal an, dass es dafür Werkzeuge gibt, die die nötigen "Header" erstellen.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: OLE Automation mit Typbibliotheken

Beitrag von theo »

ErnstVolker hat geschrieben:Gibt es außer "HeadConv" noch irgendwie Programme, welche Zuverlässig aus C-Headerdatein in Units für Lazarus/Delphi umwandeln?


Headconv brauchst du nicht. Mit Freepascal kommt h2pas welches ideal für den FPC ist.
http://www.hu.freepascal.org/tools/h2pas.var

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: OLE Automation mit Typbibliotheken

Beitrag von ErnstVolker »

Vielen Dank an Hitman und theo.

Werd' mich dann mal drannsetzen Eure Hilfen umzusetzen.

Das Forum hier ist wirklich spitze. :D :D :D

Gruß

Volker

hotzenplotz
Beiträge: 33
Registriert: So 13. Dez 2009, 16:17

Re: OLE Automation mit Typbibliotheken

Beitrag von hotzenplotz »

Da muss ich mich gleich dieser Diskussion anschliessen. Es wäre wirklich eine geniale Erleichterung ein Import Tool direkt von Lazarus aus aufrufen zu können, die dann die gewünschte DLL wrappt. So etwas sollte auch nicht allzu schwer sein, wenn man nötiges ObjectPascal know-how und Zeit hat. Ich hab beides nicht ;) Trozdem würd mich sowas schon sehr jucken.

Es gibt da ein Projekt, geschrieben in D, das genau dieses macht. tlbimpd. Das funktioniert auch ohne Probleme.

Projektseite -> http://www.dsource.org/projects/juno/wi ... ryImporter
Code -> http://www.dsource.org/projects/juno/br ... ls/tlbimpd
Mischen Sie Sich ein! Machen Sie mit! ödp www.ödp.de - Die Öko-Demokraten

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: OLE Automation mit Typbibliotheken

Beitrag von marcov »

2.5.1 hat mehr und mehr die benötigende Header und Klassen für ein eigenes Tool, sie sollen nur debugged werden. Leider hat den User der den meisten Arbeit geleistet hat nicht viel Zeit, oder er hat schwierigkeiten mit Debuggen einige der uebergebliebene Problemen.

Aber am einfachsten ist jemand mit Delphi die TLB importieren zu lassen, und dan die generierten _tlb.pas unit in FPC nutzen. (aber besser in 2.5.1)

Sehe auch alle Bugs mit "COM" markiert in dem Tracker.

hotzenplotz
Beiträge: 33
Registriert: So 13. Dez 2009, 16:17

Re: OLE Automation mit Typbibliotheken

Beitrag von hotzenplotz »

marcov hat geschrieben:2.5.1 hat mehr und mehr die benötigende Header und Klassen für ein eigenes Tool, sie sollen nur debugged werden. Leider hat den User der den meisten Arbeit geleistet hat nicht viel Zeit, oder er hat schwierigkeiten mit Debuggen einige der uebergebliebene Problemen.

Aber am einfachsten ist jemand mit Delphi die TLB importieren zu lassen, und dan die generierten _tlb.pas unit in FPC nutzen. (aber besser in 2.5.1)

Sehe auch alle Bugs mit "COM" markiert in dem Tracker.


Funktioniert ohne Probleme auch mit 2.4er Version. Ein Import Tool für Lazarus muss trozdem her.
Mischen Sie Sich ein! Machen Sie mit! ödp www.ödp.de - Die Öko-Demokraten

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: OLE Automation mit Typbibliotheken

Beitrag von mschnell »

hotzenplotz hat geschrieben:Ein Import Tool für Lazarus muss trozdem her.
Dann mach mal !
-Michael

Antworten