Probleme mit Greanleaf CommX
-
Hi,
versuche vergeblichst, mir eine Klasse THardware aufzubauen. Das Problem ist, ich hätte das Konzept soweit fertig, das einzige das nicht funkt ist die Initialisierung des Ports.
Habe die Header Datei eingebunden #include "CommXLib_OCX.h" und dann hab ich mir einen Pointer auf die TPortCtl gemacht: TPortCtl* Portwenn ich aber nun Port->BaudRate=9600; bringt er immer folgenden RunTime Error:
E2122 Funktionsaufruf durch unbehandelte Exception 0xc0000005 an Adresse 0x4016f527 beendet.
Was heißt denn das und was mach ich falsch????
Achso, hab mir nämlich das ganze vorher angesehen wenn ich das Port Element einfach (so wie z.B. den Timer auf eine Form ziehe) dann macht der auch nicht mehr als ich, kein Port=newTPortCtl oder so in der Richtung, warum nicht.
Und selbst wenn ich's mache geht das dann nicht.Bitte um Hilfe, danke
-
Hallo
dann hab ich mir einen Pointer auf die TPortCtl gemachtDas erklaert deine Frage doch eigentlich schon
Was ist ein Zeiger ?
Wo hast du denn Speicher dafuer her (Port->BaudRate) ?MfG
Klaus
-
ein Zeiger enthält die Info über den Speicherbereich wo dann das jeweilige Ding liegt dass ich ansprechen will.
Nur was hast du damit gemeint wo ich den Speicher dafür herbekomme???Wenn ich Port=new TPortCtl; sage bringt er wieder einen anderen Fehler mit dem ich erst recht nicht weiß was ich damit anfangen soll.
Und wenn ich's über das Symbol mach gehts obwohl ich nicht weiß was ich anders hab????
-
Tom7 schrieb:
ein Zeiger enthält die Info über den Speicherbereich wo dann das jeweilige Ding liegt dass ich ansprechen will.
Ein Zeiger enthält diese Information nicht, solange du sie nicht reinsteckst.
Wenn ich Port=new TPortCtl; sage bringt er wieder einen anderen Fehler mit dem ich erst recht nicht weiß was ich damit anfangen soll.
Und damit wir ja nicht weiterkommen, verrätst du sie uns auch nicht? Oder glaubst du, weil du mit der Fehlermeldung nichts anfangen kannst, kann das auch niemand sonst?

-
ich schreib: Port=new TPortCtl;
aso hab ich ganz vergessen, die Fehlermeldung lautet:Keine Übereinstimmung für TPortCtl::TPortCtl() gefunden;
wenn ich dann die datei "CommXLib_OCX.h" durchgehe find ich das auch nicht, aber es gibt auch sonst kein Initialize oder ähnliches. Und wenn ich eben nur das Symbol "Port" in die Form reinziehe gehts und dann macht der C++ Builder ja selbst die Initialisierung nur schreibt der eben auch nur
TProtCtl* Port; und nix mit new oder dgl. warum gehts da???
-
Tom7 schrieb:
Keine Übereinstimmung für TPortCtl::TPortCtl() gefunden;
Dann hat die Klasse wohl keinen Defaultkonstruktor. Hast du keine Dokumentation?
Und wenn ich eben nur das Symbol "Port" in die Form reinziehe gehts und dann macht der C++ Builder ja selbst die Initialisierung nur schreibt der eben auch nur
TProtCtl* Port; und nix mit new oder dgl. warum gehts da???Das ist mit Sicherheit nicht alles, was da passiert.
Ich bin kein Borland-Fachmann. Bist du sicher, dass man Instanzen von Steuerelementklassen überhaupt einfach so anlegen kann?
-
Nein Doku hab ich leider kein bekommen.
Ich hab zumindest sonst nichts gefunden, hab mir eigens nur dafür vorerst ein eigenes Projekt angelegt damit ich nachvollziehen kann was da alles passiert und das ist alles, mehr ändert sich da nicht.
Ob das geht, dass ich ein Steuerelement quasi so übergehe würd ich auch gern wissen, so langsam zweifel ich daran!!!???!!!
Gehts das denn???
Achso is mir grade eben aufgefallen:
kann es sein, dass es was damit zu tun hat dass wenn ich es über das Steuerelemnt mach, dass es dann "__published:" ist???