<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Eingebundenes Header will nicht]]></title><description><![CDATA[<p>Hallo, ich möchte eine Headerdatei in mein Projekt einbinden, die so aussieht(in auszügen):</p>
<pre><code>//.....
class K8055 : public IOBoard
{
    protected:
    Boolean    m_fopen[K8055_NCARDS];
    Boolean m_fdirty[K8055_NCARDS];
    Boolean    m_fBulkWrite;
    Boolean m_fBulkRead;
    void     ReadAllAD(BYTE *datum);
    public:
    K8055();
    ~K8055();
    //.....

};
//....
</code></pre>
<p>Meine main.cpp sieht dann so aus:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;k8055.h&quot;

int main(){
    K8055::K8055 board;
    return 0;
};
</code></pre>
<p>Ich bekomme immer vom Compiler folgende FehlermeldungEn:<br />
error: expected initializer before ‘board’<br />
error: ‘K8055’ has not been declared</p>
<p>Ich bin mir sicher es ist ein banaler Fehler, aber ich komm einfach nicht drauf<br />
Wäre nett, wenn mir jemand weiterhelfen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/157446/eingebundenes-header-will-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 08:08:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157446.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Aug 2006 18:16:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Fri, 25 Aug 2006 18:16:50 GMT]]></title><description><![CDATA[<p>Hallo, ich möchte eine Headerdatei in mein Projekt einbinden, die so aussieht(in auszügen):</p>
<pre><code>//.....
class K8055 : public IOBoard
{
    protected:
    Boolean    m_fopen[K8055_NCARDS];
    Boolean m_fdirty[K8055_NCARDS];
    Boolean    m_fBulkWrite;
    Boolean m_fBulkRead;
    void     ReadAllAD(BYTE *datum);
    public:
    K8055();
    ~K8055();
    //.....

};
//....
</code></pre>
<p>Meine main.cpp sieht dann so aus:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;k8055.h&quot;

int main(){
    K8055::K8055 board;
    return 0;
};
</code></pre>
<p>Ich bekomme immer vom Compiler folgende FehlermeldungEn:<br />
error: expected initializer before ‘board’<br />
error: ‘K8055’ has not been declared</p>
<p>Ich bin mir sicher es ist ein banaler Fehler, aber ich komm einfach nicht drauf<br />
Wäre nett, wenn mir jemand weiterhelfen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124649</guid><dc:creator><![CDATA[DiJA]]></dc:creator><pubDate>Fri, 25 Aug 2006 18:16:50 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Fri, 25 Aug 2006 18:19:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;k8055.h&quot;

int main(){
    K8055 board;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1124650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124650</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Fri, 25 Aug 2006 18:19:14 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Fri, 25 Aug 2006 18:32:05 GMT]]></title><description><![CDATA[<p>Ich dachte das sei auf grund der Namensräume nötig. Ich hab mal weggelassen dann gibts die Fehlermeldungen:<br />
error: expected `;' before ‘board'<br />
error: ‘K8055’ was not declared in this scope</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124657</guid><dc:creator><![CDATA[DIJA]]></dc:creator><pubDate>Fri, 25 Aug 2006 18:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Fri, 25 Aug 2006 18:40:05 GMT]]></title><description><![CDATA[<p>Der Code ist soweit korrekt. Der Fehler liegt woanders.</p>
<p>Wegen Deiner Annahme bezüglich der Namespaces: Liegt denn K8055 in einem Namensraum namens K8055, oder vielleicht in einem ganz anderen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124660</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 25 Aug 2006 18:40:05 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Fri, 25 Aug 2006 18:46:27 GMT]]></title><description><![CDATA[<p>Da muss ich wohl was falsch verstanden haben, ich dachte sobald eine class nicht in der .cpp Datei liegt, sonder die ihre Header-Datei eingebunden muss ein Aufruf ihrer Funktionen etc so bekanntgemacht werden: Klassenname::Funktion, aber ok.</p>
<p>Ich poste mal die ganze Header-Datei werd ich sowieso nicht ganz schlau draus:</p>
<pre><code>#ifndef _K8055_
#define _K8055_

#ifndef _PORT_H_
#include &quot;port.h&quot;
#endif

#define K8055_NCARDS		4	// Number of possible cards

// Bit locations
#define K8055_NDOUT		5 	// Number of digital outputs
#define K8055_DIN1		0x10
#define K8055_DIN2		0x20
#define K8055_DIN3		0x01
#define K8055_DIN4		0x40
#define K8055_DIN5		0x80

// Control byte values
#define K8055_CRESET_1		0x03
#define K8055_CRESET_2		0x04
#define K8055_OUTPUT		0x05

#define K8055_NO_ADDR		0xFFFF
#define K8055_VENDOR		0x10CF

// Input &quot;Registers&quot; in 8 byte blocks 
#define K8055_IN_DIGITAL	0
#define K8055_DA_1		2
#define K8055_DA_2		3
#define K8055_CNT_1		4
#define K8055_CNT_2		6

// Output Registers
#define K8055_CTL		0
#define K8055_OUT_DIGITAL	1
#define K8055_AD_1		2
#define K8055_AD_2		3
#define K8055_DEBOUNCE_1	6
#define K8055_DEBOUNCE_2	7

extern const unsigned int	s_K8055_ids[];
extern const unsigned char	s_K8055_dndx[];
extern const int 		s_bytebit[];

#ifdef __cplusplus
#ifdef _MDEVICE_
/** Class to interface Velleman K8055 as a generic IOBoard object */
class K8055 : public IOBoard
{
	protected:
	Boolean	m_fopen[K8055_NCARDS];
	Boolean m_fdirty[K8055_NCARDS];
	Boolean	m_fBulkWrite;
	Boolean m_fBulkRead;
	void 	ReadAllAD(BYTE *datum);
	public:
	K8055();
	~K8055();
	Boolean ReadAD(int channel, int *value);
	Boolean	WriteDA(int channel, int value);
	Boolean	ReadIO(int channel, int *value);
	Boolean WriteIO(int channel, int value);
	Boolean ReadCounter(int channel, int *value);
	Boolean ClearCounter(int channel);
	Boolean	BulkWrite(Boolean fBulk=FALSE);
	Boolean BulkRead(Boolean fBulk=FALSE);
	int 	Escape(int cmd, int param);
	int 	GetBits(int type, int channel);

};
#endif
extern &quot;C&quot; {
#endif
int k8055_writeBlock(int addr);

int k8055_readBlock(int addr);

// Set internal device address 
int setAddr(unsigned int addr);

// Set a byte in the output buffer
void setOutputByte(int ndx, unsigned char ubyte);

// Get a byte from the output buffer
unsigned char getOutputByte(int ndx);

// Get a byte from the input buffer
unsigned char getInputByte(int ndx);

// Get the 16 bit count from one of the counters
int getInputCounter(int cntr);

// Get adjusted digital input
int getInputDigital();

// Clear the bytes in the output buffer
void clearOutputBytes(void);

//
// Standard Velleman API
// (Pretty bogus really because the names are too generic
// and would probably conflict with other APIs)
//
int 	OpenDevice(int addr);
void 	CloseDevice(void);
int 	ReadAnalogChannel(int ch);
int 	ReadAllAnalog(int *data1, int *data2);
int 	OutputAnalogChannel(int ch, int data);
int 	OutputAllAnalog(int data1, int data2);
int 	ClearAnalogChannel(int ch);
int 	ClearAllAnalog(void);
int 	SetAnalogChannel(int ch);
int 	SetAllAnalog(void);
int 	WriteAllDigital(int data);
int 	ClearDigitalChannel(int ch);
int 	ClearAllDigital(void);
int 	SetDigitalChannel(int ch);
int 	SetAllDigital(void);
Boolean	ReadDigitalChannel(int ch);
long 	ReadAllDigital();
int 	ResetCounter(int c);
long 	ReadCounter(int c);
int 	SetCounterDebounceTime(int c, int deb);

#ifdef __cplusplus
}
#endif

#endif
</code></pre>
<p>Irgendeine Ideee was da falsch läuft?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124662</guid><dc:creator><![CDATA[DijA]]></dc:creator><pubDate>Fri, 25 Aug 2006 18:46:27 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Fri, 25 Aug 2006 18:50:01 GMT]]></title><description><![CDATA[<p>Da steht nüscht von irgendnem Namespace (also ist mein Code richtig ;)). Woher kommt _MDEVICE_? Wird das in einem anderen Header definiert? Dann solltest du den vorher inkludieren (oder ggf. mal selbst mit &quot;#define _MDEVICE_&quot; vorher definieren und schauen obs kracht ;)).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124664</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Fri, 25 Aug 2006 18:50:01 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Fri, 25 Aug 2006 19:21:09 GMT]]></title><description><![CDATA[<p>Ok, jetzt versteh ich gar nichts mehr: Ich habe noch eine Header-Datei importiert namens port.h die so aussieht</p>
<pre><code class="language-cpp">#ifndef _PORT_H_
#define _PORT_H_

#define TIME_SCALE	1000000

#ifndef INT_MAX
#define INT_MAX		2147483647
#endif
#ifndef INT_MIN
#define INT_MIN		(-INT_MAX - 1)
#endif

typedef unsigned char BYTE;
typedef unsigned char Boolean;

#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef Boolean_DEFINED
#define Boolean_DEFINED
typedef unsigned char Boolean;
#endif
#ifndef MAX
#define MAX(a,b) (((a)&gt;(b))?(a):(b))
#endif
#ifndef MIN
#define MIN(a,b) (((a)&lt;(b))?(a):(b))
#endif
#ifndef ABS
#define ABS(a)	(a &lt; 0)?(-a):(a)
#endif
#ifdef WIN32
#define VSNPRINTF	_vsnprintf
#define ALLOCA(cb)	_alloca(cb)
#define SNPRINTF	_snprintf
#else
#define VSNPRINTF	vsnprintf
#define ALLOCA(cb)	alloca(cb)
#define SNPRINTF	snprintf
#endif

extern void errprintf(char *fmt, ...);

enum DeviceTypes
{
	DEVTYPE_UNKNOWN,
	DEVTYPE_FILE,
	DEVTYPE_SERIAL232,
	DEVTYPE_SERIALUSB,
	DEVTYPE_SERIALI2C,
	DEVTYPE_SERIALPS2,
	DEVTYPE_PARPORT,
	DEVTYPE_PCI,
	DEVTYPE_AGP,
	DEVTYPE_PIDE,
	DEVTYPE_SATA,
	DEVTYPE_SCSI,
	DEVTYPE_USER
};

class MDevice
{
	protected:
	int	m_devtype;
};
#endif
</code></pre>
<p>Wie man sehen kann gibt es eine Klasse MDevice wenn ich also dadrüber #define _MEDVICE_ einfüge. Verschwindet der Fehler in der main-Funktion ich bekomme aber einen neuen:</p>
<pre><code class="language-cpp">class K8055 : public IOBoard
{
	protected:
	Boolean	m_fopen[K8055_NCARDS];
	Boolean m_fdirty[K8055_NCARDS];
	Boolean	m_fBulkWrite;
	Boolean m_fBulkRead;
....
</code></pre>
<p>In den zweiten Zeile gibt es die Fehlermeldung:<br />
error: expected class-name before ‘{’ token</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124679</guid><dc:creator><![CDATA[Dija]]></dc:creator><pubDate>Fri, 25 Aug 2006 19:21:09 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Fri, 25 Aug 2006 22:01:33 GMT]]></title><description><![CDATA[<p>Dann ist die Klasse IOBoard nicht bekannt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124742</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 25 Aug 2006 22:01:33 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Sat, 26 Aug 2006 09:49:51 GMT]]></title><description><![CDATA[<p>Jetzt hab ichs fast, es war falsch die Header-Datei local einzubinden(#include &quot;blabla&quot;), ich musste sie so einbinden: #include &lt;blabla&gt;</p>
<p>Jetzt bekommen ich noch den Fehler:<br />
/usr/local/include/k8055.h error: ‘Boolean’ does not name a type<br />
Ich vermute das liegt daran, dass der boolsche Datentyp bei mir schlicht bool heißt. Ich hab jetzt natürlich wenig Lust alle booleans in der Bibliothek rauszusuchen gibt es dafür ein Compileranweisung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124823</guid><dc:creator><![CDATA[Dija]]></dc:creator><pubDate>Sat, 26 Aug 2006 09:49:51 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Sat, 26 Aug 2006 10:11:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">typedef bool Boolean;
</code></pre>
<p>aber schön ist das nicht, mach lieber ein find&amp;replace</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124833</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Sat, 26 Aug 2006 10:11:27 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Sat, 26 Aug 2006 12:06:17 GMT]]></title><description><![CDATA[<p>Ok, danke hat geholfen Boolean stand zwar nicht für bool wie ich zuerst dachte sonder für &quot;unsigned char&quot;, aber das Problem ist umschifft mein Programmcode sieht jetzt so aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;k8055.h&gt;

int main(){
	int addr =  OpenDevice(0);
	int AnalogChn1 = ReadAnalogChannel(1);
	std::cout &lt;&lt; &quot;Kontakt aufgenommen. Addr.: &quot; &lt;&lt; addr &lt;&lt; std::endl 
				&lt;&lt; &quot;Wert Analog-Kanal 1: &quot; &lt;&lt; AnalogChn1;
	CloseDevice();
	return 0;
}
</code></pre>
<p>und ich bekomme jetzt diese Fehlermeldungen:<br />
undefined reference to <code>CloseDevice' main.cpp line 9 undefined reference to</code>OpenDevice' main.cpp line 5</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124877</guid><dc:creator><![CDATA[Dija]]></dc:creator><pubDate>Sat, 26 Aug 2006 12:06:17 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Sun, 27 Aug 2006 09:04:33 GMT]]></title><description><![CDATA[<p>Also ich komm hiermit nicht weiter. Vielleicht hat ja jemand Lust sich die Sources der Bibliothek runterzuladen, sie auszuprobieren und mir zu sagen was ich falsch machen.<br />
<a href="http://www.mohawksoft.org/?q=node/15" rel="nofollow">http://www.mohawksoft.org/?q=node/15</a><br />
Wäre nett. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1125234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125234</guid><dc:creator><![CDATA[Dija]]></dc:creator><pubDate>Sun, 27 Aug 2006 09:04:33 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Sun, 27 Aug 2006 10:42:41 GMT]]></title><description><![CDATA[<p>So, nachdem ich schon fast aufgegeben hatte (siehe oben)hab ich nun eine C-Bibliothek gefunden mit der es geht,JUHU. Danke nochmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1125271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125271</guid><dc:creator><![CDATA[Dija]]></dc:creator><pubDate>Sun, 27 Aug 2006 10:42:41 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Thu, 07 Sep 2006 19:38:07 GMT]]></title><description><![CDATA[<p>Hallo, Ihr Fachleute !</p>
<p>Benötige Hilfe beim Ansprechen des K8055D: Beim &quot;CloseDevice();&quot; erhalte ich die<br />
Fehlermeldung: &quot;Die Ausnahme &quot;Unbekannter Softwarefehler&quot; (0x0eedfade) in der Anwendung ander Stelle 0x77ef142 aufgetreten.&quot; Ansonsten macht das Programm alles, was es soll....</p>
<p>Die entscheidenden Teile meines Programmlistings sind:</p>
<p>#include &quot;K8055D.h&quot;<br />
#include &lt;windows.h&gt; // for DLL usage<br />
#include &lt;iostream&gt;<br />
#include &lt;time.h&gt;</p>
<p>....</p>
<p>int main()<br />
{<br />
int status;<br />
long int A1_in = -1; long int A2_in = -1;<br />
int D1_in; int z1; int z2;</p>
<p>// Karte 0 öffnen</p>
<p>cout &lt;&lt; &quot;\nOeffne Karte 0...&quot;;<br />
status = OpenDevice( 0 );<br />
if ( status &lt; 0 )<br />
{<br />
cout &lt;&lt; &quot;\nFehler beim Oeffnen der Karte&quot;;<br />
return -1;<br />
}</p>
<p>....</p>
<p>// Karte schließen</p>
<p>CloseDevice;<br />
warte( 1000 );<br />
return EXIT_SUCCESS;<br />
}</p>
<p>Könnt Ihr mir helfen, meinen Blindflug zu beenden ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133290</guid><dc:creator><![CDATA[Schkoppo]]></dc:creator><pubDate>Thu, 07 Sep 2006 19:38:07 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Fri, 08 Sep 2006 09:16:44 GMT]]></title><description><![CDATA[<p>Ja, der Fehler liegt ziemlich sicher IN deiner Funktion CloseDevice(). (ich hoffe mal, die fehlenden Klammern sind beim Abtippen entstanden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133509</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 08 Sep 2006 09:16:44 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Sat, 09 Sep 2006 18:02:21 GMT]]></title><description><![CDATA[<p>Danke für den Tipp ! Allerdings waren die Klammern die Ursache noch nicht. Diegleiche Fehlermeldung erscheint noch immer. Ich forsche also weiter:</p>
<p>* &quot;inaktuelle DLL&quot; ?...<br />
* &quot;DLL wieder freigeben&quot; ?...</p>
<p>Habe auch schon einige progs aus WWW für das K8050D-Board probiert. - Diegleiche Fehlermeldung tritt bei denen teilweise auch auf.</p>
<p>BIN FUER JEDEN TIPP DANKBAR.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134338</guid><dc:creator><![CDATA[Schkoppo]]></dc:creator><pubDate>Sat, 09 Sep 2006 18:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to Eingebundenes Header will nicht on Tue, 12 Sep 2006 19:43:33 GMT]]></title><description><![CDATA[<p>Fehler behoben !<br />
Ursache war eine fehlerhafte DLL von Vellemann. Er stellt selber eine korrigierte auf seiner Webseite zur Verfügung:</p>
<p><a href="http://www.velleman.be/be/de/download/files/" rel="nofollow">http://www.velleman.be/be/de/download/files/</a> ; k8055_dll_2_001.zip</p>
<p>Damit läuft alles glatt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1136139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136139</guid><dc:creator><![CDATA[Schkoppo]]></dc:creator><pubDate>Tue, 12 Sep 2006 19:43:33 GMT</pubDate></item></channel></rss>