COM in Xbase?

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
Rolf
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 258
Registriert: Do, 27. Apr 2006 12:28
Wohnort: Görlitz

COM in Xbase?

Beitrag von Rolf »

Hallo

Ich habe für eine Hardwarekomponente ein SDK bekommen, was eigentlich für C++ entwickelt ist. Darin ist erläutert wie der Zugriff über die COM Schnittstelle funktionieren soll.

Kann XBase++ auch mit COM umgehen, da ActiveX – Komponenten, laut Wikipedia nur eine Erweiterung des COM (Component Object Model-Standards) sind?
:?
Grüße Rolf
Günter Beyes
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 315
Registriert: Mo, 16. Okt 2006 13:04
Wohnort: Region Stuttgart

Beitrag von Günter Beyes »

Hallo Rolf,

wenn die Hersteller-Dokumentation als Hostsprache auch Visual Basic oder VBScript erwähnt oder das Stichwort "Dispatch-Interface" auftaucht, wirst du davon ausgehen können, dass es mit Xbase++ ebenso funktionieren müsste.

ActiveX-Komponenten erlauben den Zugriff auf Methoden und Properties über ihnen Namen. Damit kann Xbase++ bequem umgehen, mit dem von COM allgemein definierten Low-Level-Verfahren (Funktionsaufruf über Adresszeiger) nicht ohne gewisse Klimmzüge.

Viele Grüße,
Günter
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Hallo Rolf,

wir arbeiten mit Com-Schnittstelle, um die Daten zwieschen PC und Barcodescannern auszutauschen ( Senden und Empfangen). Es funktioniert, du brauchst aber XBase-Tools dafür.
Gruß,

Andreas
VIP der XUG Osnabrück
Rolf
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 258
Registriert: Do, 27. Apr 2006 12:28
Wohnort: Görlitz

Beitrag von Rolf »

Danke für die Antworten

Ich bin noch etwas überfordert. Hab jetzt erst mal die VB-Beispielanwendung zum laufen bekommen. Wenn ich mir die aber anschaue weiß ich erst mal gar nicht wo ich anfangen soll.

Bei Dll's ist es da einfacher und überschaubar. Dll einbinden und entsprechende Funktion mit dem richtigen Parameter aufrufen. Aber wie geht man bei COM vor? Was muss dort eingebunden werden?

@Andreas
Wieso genau braucht man die XBToolsIII für COM?

Grüße Rolf
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
Rolf hat geschrieben: Aber wie geht man bei COM vor? Was muss dort eingebunden werden?
schon mal mit COM Assistant versucht ?
http://www.devcomponents.com/comassistant/
Rolf hat geschrieben: @Andreas
Wieso genau braucht man die XBToolsIII für COM?
Com1: <> COM ...

gruss by OHR
Jimmy
Rolf
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 258
Registriert: Do, 27. Apr 2006 12:28
Wohnort: Görlitz

Beitrag von Rolf »

Hallo Jimmy

Das SDK ist schon gut dokumentiert, daran scheitert es bei mir nicht sondern wie geht es jetzt weiter.

Ich habe eine DLL, eine Lib und eine Reihe von Objekten mit Funktionen. Ich kenne auch das Root-Objekt.

Aber ich weiß nicht ob ich nur die *.Lib oder auch die *.Dll benötige.
Und ich weiß nicht wie ich diese einbinden soll.

Das Beispiel mit CreateObject() habe ich ein bisschen auf das SDK abgewandelt bringt dann aber nur den Fehler "ung|ltige Klassenzeichenfolge" zurück.

Welches ActiveX-Objekt muss ich den nehmen?
Oder welches Xbase-Beispiel könnte für mein Problem passen?

Das ist alles noch neues unerforschtes Land für mich. :oops:

Vielen Dank
Rolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Rolf.

Die LIB wirst Du nur brauchen, wenn Du das in ein C++-Projekt einbindest. Bei Xbase++ wirst Du die Funktionen aus der DLL z.B. mit DLLFUNCTION wrappen müssen. Vermutlich werden dann auch keine Objekte erzeugt, sondern lediglich Pointer übermittelt. Ob, wie und warum genau, sollte die Doku des SDK eigentlich hergeben. Um welches Produkt geht es genau?
Herzlich,
Tom
Rolf
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 258
Registriert: Do, 27. Apr 2006 12:28
Wohnort: Görlitz

Beitrag von Rolf »

Hallo

Die Probleme mit CreateObject() lagen doch an einem Schreibfehler.
Nun klappt das alles.

Ich scheine es auch langsam zu verstehen. Nachdem ich das SDK installiert hatte, gab es irgendeine Verknüpfung in der Registry. Deshalb muss man die DLL und LIB im Programm gar nicht einfügen, sondern nur in CreateObject() die richtige cProgID angeben. Damit hat man dann erstmal das Root-Objekt und kann von diesem die weiteren Objekte und Funktionen aufrufen.

@Tom
Es geht um den Konnektor für die Gesundheitsreform (wikipedia) Mehr kann man da eigentlich nicht sagen, da es Vertraglich auch in den meisten Fällen nicht erlaubt ist.

Vielen Dank für eure Hilfe :wink:
Grüße Rolf
Antworten