Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem mit djgpp und namespace

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.12.2005, 13:22 Uhr
RedEagle



Ich habe folgenden Code:

C++:
//HEADER

#include "types.hpp"

namespace ASM
{
BYTE in(ADDRESS port);
void out(ADDRESS port, BYTE value);
}


//QUELLCODE
#include "lowio.hpp"
#include "types.hpp"

BYTE ASM::in(ADDRESS port)
{
BYTE value;
asm volatile ("inb  %%dx, %%al" : "=a" (value) : "d" (port) );
return value;
}

void ASM::out(ADDRESS port, BYTE value)
{
asm volatile ("outb %%al, %%dx" : : "d" (port), "a" (value));
return;
}


Wenn ich das jetzt mit DJGPP versuche in ein Object-file zu Kompillieren, gibt's ein Problem mit dem Namespace:

Konsole:
gcc -c -ffreestanding -nostdlib -fno-builtin -fno-rtti -fno-exceptions -o *PFAD*\lowio.obj *PFAD*\lowio.cpp

*PFAD*/lowio.hpp:7: sorry, not implemented: namespace
*PFAD*\\lowio.hpp:4: syntax errir befor '::'
*PFAD*\\lowio.hpp:11: syntax errir befor '::'


Was ist falsch?? habe es mit DEV-CPP getestet (ohne dem asm-code) und da hat es funktioniert.
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.12.2005, 14:50 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


g++ benutzen
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.12.2005, 15:42 Uhr
RedEagle



geht nicht (Unbekannte Datei oder Befehl)...
Und in "djgpp\bin\" ist nur gcc und gxx (bei beiden kommt der selbe fehler)
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.12.2005, 16:00 Uhr
virtual
Sexiest Bit alive
(Operator)


Daß es am asm Code hängt, würde ich bezweifeln. Ist in meinen Augen ein genereller Syntax error.
Normalerweise geht man meines Wissens anders mit Namespaces um. Muß es in der .cpp Datei nicht heissen:

C++:
#include "lowio.hpp"
#include "types.hpp"

namespace ASM {

BYTE in(ADDRESS port)
{
BYTE value;
asm volatile ("inb  %%dx, %%al" : "=a" (value) : "d" (port) );
return value;
}

void out(ADDRESS port, BYTE value)
{
asm volatile ("outb %%al, %%dx" : : "d" (port), "a" (value));
return;
}

}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.12.2005, 18:42 Uhr
RedEagle



dann kommt immernoch dieser Fehler:

Konsole:
*PFAD*/lowio.hpp:7: sorry, not implemented: namespace

--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
08.12.2005, 18:45 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


zeig mal lowio.hpp da ist wahrscheinlich ein ähnlicher fehler
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.12.2005, 19:28 Uhr
RedEagle




C++:
#ifndef LOWIO_HPP
#define LOWIO_HPP

#include "types.hpp"

namespace ASM
{
BYTE in(ADDRESS port);
void out(ADDRESS port, BYTE value);
}  

#endif


Ich habs mal mit nem andren "Namen" versucht (also nicht ASM) aber es kommt der gleiche Fehler...
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.12.2005, 16:31 Uhr
RedEagle



FUNKTIONIERT

Ich hab mir einfach ein paar updates und zip-files geholt, die einen interessanten Namen hatten, z.B. "objc401b.zip" und dann hat es irgendwann funktioniert.

trotzdem
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: