004
31.08.2003, 16:49 Uhr
0xdeadbeef
Gott (Operator)
|
Zitat: |
~nostro postete Was meinst du genau mit _UNICODE?
|
_UNICODE ist ein Präprozessor-Flag, dass der Compiler setzen kann. Wenn du mal in die Header-Dateien kuckst, die der VC++-Wizard dir erstellt, steht da am Anfang immer sowas in der Art:
C++: |
#ifndef __HEADER_H_1239832983120 #define __HEADER_H_1239832983120
//hier der Rest
#endif
|
Das hat den Effekt, dass die Klasse, auch wenn irgendwo sowas steht:
C++: |
#include "header.h" #include "header.h"
|
nicht doppelt deklariert wird, was den Compiler durcheinander brächte. Im Windows-API wird das _UNICODE-Flag gesetzt, wenn die Anwendung standardmäßig Unicode (2-bit chars) verwenden soll. Das dürfte die STL zwar eigentlich nicht beeinflussen, weil die dazu eigene Klassen vordefiniert, aber die STL-Implementierung von Microsoft ist etwas merkwürdig, deswegen möchte ich nicht ausschließen, dass da was kurmm läuft. Ob das Flag gesetzt ist, müsstest du unter Project -> Settings -> C/C++ oder so ähnlich sehen.
Zitat: |
~nostro postete Heißt das, dass iostream.h was anderes ist wie iostream. Sollte man also immer .h weglassen bei den includes?
|
Ja. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |