Erstellen eines MSComm Objekts



  • Hi,

    ich möchte einen Kassenöffner JO-8005 über USB ansteuern. Dazu benötige ich die MSCommLib welche ich eingebunden habe.

    Um die Kasse zu öffnen muss ich den Decimalwert 53 an den Öffner schicken.

    Mit folgendem Code habe ich es versucht:

    #include "MSCommLib_TLB.h"
    #include "MSCommLib_OCX.h"
    
    IMSComm *Kasse;
    
    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    {
    	[u]Kasse = new IMSComm(this);[/u]
    	Kasse->set_CommPort(1);
    	Kasse->set_Settings("9600,N,8,1");
    	Kasse->set_PortOpen(TRUE);
    	Kasse->set_Output(255);
    	Kasse->set_PortOpen(FALSE);
    
    }
    

    Beim Compilen kommt jedoch folgene Fehlermeldung (zur unterstrichenen Zeile):
    E2352 Instanz der abstrakten Klasse 'IMSComm' kann nicht erzeugt werden
    E2353 Klasse 'IMSComm' ist abstrakt, weil '__stdcall IMSComm::set_CDHolding(short) = '0'

    Hat da jemand eine Idee wie ich das zu machen habe?

    -Jarhead



  • Hat denn keiner eine Idee wie das geht beziehungsweise was ich da falsch gemacht habe?

    -Jarhead



  • IMSComm ist eine abstrakte Klasse (dem Namen nach ein Interface), davon kann man keine Objekte erzeugen. Du benötigst eine konkrete Klasse, die die abstrakten Methoden implementiert hat (entweder selber schreiben oder nach einer Create-Funktion suchen, die dir eine liefert).



  • MSComm war ein ActiveX Steuerelement in VB5 und VB6, um auf die serielle Schnittstelle zuzugreifen. Es ist seit VS 2002 nicht mehr enthalten.

    Und

    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    

    sieht mir doch stark nach C++ Builder aus.

    Irgendwie passt das alles nicht zusammen ...

    In Visual C++ oder C++ Builder sollte man, üblicherweise über eine fertige Klasse, mit der WinAPI auf die serielle Schnittstelle zugreifen.
    http://www.naughter.com/serialport.html
    http://members.inode.at/anton.zechner/az/Seriell.htm



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum VCL (C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten