Win CE 6.0 R3: Probleme bei Verwendung der Stream Klassen

Gast #2297936
Lesenswert?
• ▲
▼
Hallo,

ich versuche in einem Windows Embedded CE 6.0 R3 Projekt die 
Streamklassen zu verwenden. Unteranderem fstream und strstream.

Beim Compilieren meines Subprojects im VisualStudio2005/PlatformBuilder 
treten sehr viele Fehler bzgl. den Dateien xiosbase, streambuf und 
xlocnum auf.

Im Anhang befindet sich der relevante Auszug aus dem Errorlog.

Kann mir jemand sagen, wie dieses Problem gelöst werden kann?

Vielen Dank!

JoW
Angehängte Dateien:
Gast #2298008
Lesenswert?
• ▲
▼
Hallo hasenklein,

Ich habe die benötigten Header, z.B. strstream includiert und den 
korrekten Pfad eingetragen. Diese Header inkludieren anschließend 
wiederum selbstständig ihre zusätzlich benötigten Header Files.

Dass es an meinen Header-Angaben liegt, schließe ich aus.

Der erste Error bezieht sich beispielsweise auf diese Code-Zeile:
1
// CLASS ios_base
2
class _CRTIMP2_PURE ios_base
3
  : public _Iosb<int>
4
  {  // base class for ios
5
public:
6
  _BITMASK(_Fmtflags, fmtflags);
7

8
...

Der Compiler sagt hier: "error C2470: 'ios_base' : looks like a function 
definition, but there is no parameter list; skipping apparent body"

Der Compiler versteht hier also irgendwie nicht, dass es sich um eine 
Klassen- und nicht um eine Funktionsdefinition handelt. Woran kann dies 
liegen?

Greets, JoW
Gast #2298448
Lesenswert?
• ▲
▼
Noch eine Ergänzung:

Komisch ist, dass unter dem Installationspfad von Visual Studio 2005 
unter \VC\ce\include alle benötigten Headerdateien wie z.B. fstream, 
strstream, iostream etc. vorhanden sind. Kann es sein, dass diese dort 
standardmäßig implementiert sind, eine Implementierung der Funktionen 
aber nicht erfolgte und somit der Linker beim Linken auf die C++ 
Standard-Bibliothek die gewünschten Verweise/Symbole nicht findet?

Viele Grüße, JoW
Gast #2298454
Lesenswert?
• ▲
▼
JoW schrieb:
> und somit der Linker beim Linken auf die C++
> Standard-Bibliothek die gewünschten Verweise/Symbole nicht findet?

nein, weil bei dir der compiler meckert und nicht der linker.

Bist du sicher das du nicht in einem anderne Header ein ; vergessen 
hast.
Gast #2298492
Lesenswert?
• ▲
▼
Oh. Entschuldige, vor lauter werkeln hab ich weitergeschrieben ohne 
upzudaten.

Ich habe begonnen, mein großes Projekt von Anfang an zu portieren. Dabei 
habe ich zunächst die Files, die auf die Streamklassen zugreifen in ein 
neues Projekt kopiert.

Ich finde aktuell alle benötigten Header Files. Der Linker meckert 
allerdings rum. (Siehe Anhang).

Vielleicht könnten wir an dieser Stelle weitermachen und das Problem von 
hinten aufrollen.

Danke!

Greets, JoW
Angehängte Dateien:
Gast #2298554
Lesenswert?
• ▲
▼
Vielen Dank an dich, Peter II. Deine Antworten haben mir sehr geholfen.

Ich habe es nun geschafft, das ganze erfolgreich zu erstellen. Ich teste 
es aber morgen noch auf der Hardware. Beim Kompilieren traten jedenfalls 
keine Fehler mehr auf.

Ich musste aus <VSInstallDir>\VC\ce\lib folgende Libraries einbinden:

libcpmtd.lib
msvcrt.lib
libcmtd.lib

Sagen die dir etwas?

Viele Grüße, JoW
Gast #2299121
Lesenswert?
• ▲
▼
Hängt evtl. damit zusammen, dass es sich bei meinem Projekt um ein 
Subproject im Platformbuilder handelt und ich dort diese alle händisch 
einbinden muss. Ich habe in den Subproject Properties deine genannte 
Option nämlich nicht gefunden.

Viele Grüße, JoW

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren