[C++] OOP mit C++, *.dll einbinden und merkwürdige Fehler

meph!sto

Urgestein
Thread Starter
Mitglied seit
13.05.2008
Beiträge
2.479
Ort
MZ
Hi,
ich habe hier eine Klasse "CUSB_LEDOut" definiert.
Code:
#ifndef CUSB_LEDOut	
#define CUSB_LEDOut
 

class CUSB_LEDOut{
private:
	IOWKIT_HANDLE m_hDevice;
	IOWKIT40_IO_REPORT m_hReport;
	USBOUT_STATE m_eState;
	USBOUT_ERROR m_eLastError;

public:
	CUSB_LEDOut();
	~CUSB_LEDOut();
	bool open();
	bool sendByte(unsigned char cByte);
	void showStat();
	void close();
};
	
#endif

Dazu habe ich dann natürlich auch eine *.cpp mit den entsprechenden Funktionen.

Code:
#include <iostream>				
#include <wtypes.h>
#include <C:\Users\<User>\Documents\Visual Studio 2008\Projects\SGSE\SGSE\iowkit.h>

using namespace std;

enum USBOUT_ERROR {USBOUT_E_OK=0, USBOUT_E_NODEVICE, USBOUT_E_INVALIDDEVICE, USBOUT_E_WRITEFAILED, USBOUT_E_DEVICENOTREADY};
enum USBOUT_STATE {USBOUT_S_NOTREADY=1, USBOUT_S_READY};

#include <C:\Users\<User>\Documents\Visual Studio 2008\Projects\SGSE\SGSE\CUSB_LEDOut.h>

CUSB_LEDOut::CUSB_LEDOut() // Konstruktor
{
	m_hDevice = NULL;
	m_Report = {0,0xFFFFFFFF};
	m_eState = USBOUT_S_NOTREADY;
	m_eLastError = USBOUT_E_NOERROR
};
CUSB_LEDOut::~CUSB_LEDOut(); // Destruktor
{

};

void CUSB_LEDOut::showState(); // showState Methode
{
	
};

bool CUSB_LEDOut::open();
{

};

bool CUSB_LEDOut::sendByte(unsigned char cByte);
{

};

void CUSB_LEDOut::close()
{

};
)

Für das zu steuernde USB Gerät haben wir eine Library, nur weiß ich nicht wo und wie ich diese einbaue.
In meiner "h"-Datei oder meiner "cpp" ?
Zudem meckert mir mein Compiler (Visual Studio 2008 Express Edition) beim Kompilieren rum.
Für meine Headerdatei kommen folgende Fehler:

cusb_ledout.h(14) : error C2059: Syntaxfehler: '('
cusb_ledout.h(14) : error C2238: Unerwartete(s) Token vor ';'
cusb_ledout.h(19) : warning C4094: 'class' ohne Tag deklariert keine Symbole

Zeile 14 aus meiner Headerdatei steht folgendes:
Code:
~CUSB_LEDOut();

Und in Zeile 19 steht nur:
Code:
};

Ich bin da echt am Ende, seit mehr als einem Jahr nichts mehr mit C++ am Hut gehabt und auf einmal soll ich das alles wieder können.... :freak

Ich hoff ihr könnt einem Laien auf die Sprünge helfen.
Danke
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich bin jetzt nicht der C++ Mensch und hab die Syntax dementsprechend nicht im Kopf, aber für mich sähe das (ein Beispiel von mehreren):

Code:
bool CUSB_LEDOut::open();
{

};

eher so aus, bzw. so kenne ich die Deklaration eben aus C#.

Code:
bool CUSB_LEDOut::open()
{

}

Aber wie gesagt ... C++ ... grusel. :d
 
Zuletzt bearbeitet:
Danke schonmal für den Input.
Was mich jedoch noch sehr irritiert ist folgende Fehlermeldung:

Code:
cusb_ledout.cpp(29) : error C2039: 'open': Ist kein Element von '`global namespace''

Die Methode "open" ist Teil der Klasse "CUSB_LEDOut" und deren Header habe ich auch eingebunden. Warum meckert er denn dann da ?

Nachtrag: wie mache ich denn meiner Klasse die Datentypen IOWKIT_HANDLE und IOWKIT40_IO_REPORT bekannt ?
Habe ja eine Library, doch wie binde ich diese ein, sodass meine Klasse o.g. Datentypen kennt ?
 
Zuletzt bearbeitet:
wie wärs mit in der klasse im header die lib einbinden? oder ne schnittstellen unit wo die lib eingebunden ist wo diese datentypen bekannt und deklariert sind?
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh