MSXML und Turbo c++ USING NAMESPACE Fehler
-
Hallo zusammen,
ich möchte den MSXML6 Parser in meiner C++ Anwendung verwenden.
Folgendes habe ich versucht :
#include <vcl.h> #pragma hdrstop #include "Unit3.h" #include "msxml6.h" using namespace MSXML;Der Turbo C++ Compiler meldet jedoch einen Fehler bei der "using namespace MSXML6;" deklaration. Es ist egal ob ich MSXML,MSXML2 usw... verwende, er beschwert sich mit "[C++ Fehler] Unit3.cpp(9): E2282 Name eines Namensbereichs erwartet"
Das versteh ich absolut garnicht und bin mit meinem Latain am ende. Habe schon sehr vielfältig gegoogelt aber scheinbar ist das nicht mein Tag...
Über Hilfe würde ich mich sehr freuen,
Stefan
-
Hallo,
Der Name deines Namensbereiches stimmt halt nicht. Schau doch einfach mal in die msxml6.h rein wie der Namensbereich wirklich heißt.
-
Hallo, und erstmal danke für deine Antwort.
Ich habe folgendes in MSXML6.h gefunden :
#ifdef __USE_MSXML6_NAMESPACE__ namespace MSXML6 { #endifMit "using namespace MSXML6;" kommt jedoch der gleich Fehler.
Habe auch mal einen #define __USE_MSXML6_NAMESPACE__ 1 am Anfang der Headerdatei gemacht. Nützt alles nicht. Dieses Turbo C++ tut sich echt schwer mit der MSXML. Es gibt halt auch keinerlei Hilfe im Netz. BEispiele gibts für Visual C++ reichlich. Das ganze geht schwer an die nerven...
Aber danke nochmal
-
Dann lass doch das using namspace einfach weg. Du brauchst es doch eigentlich nicht.
Der TurboC++ hat keinerlei Probleme mit Namspaces. Wahrscheinlich ist eben das erwähnte define nicht gesetzt, so dass die lib keinen Namespace verwendet.
Es könnte natürlich durchaus sein, dass dieses MSXML außerhalb eines MS-Compilers gar nicht läuft.
-
So nun hab ich die Lösung für mein Problem.
#ifndef __USE_MSXML2_NAMESPACE__ #define __USE_MSXML2_NAMESPACE__ 1 #endif __USE_MSXML2_NAMESPACE__Ist zwar nirgens so definiert aber muss so sein. In der msxml2.h,msxml4.h,msxml6.h usw... wird der Namespace nur definiert wenn die __USE_MSXML2_NAMESPACE__ definiert wurde.
#ifdef __USE_MSXML6_NAMESPACE__ namespace MSXML6 { ....Ich weiß nicht ob das im VisualStudio automatisch geschieht aber ich finde das ganze schon sehr umständlich bzw. irreführend.
-
Der Namensraum ist nun ok aber die LIB ist nicht richtig eingebunden. Das heißt, absturz während der Laufzeit. Also wenn jemand weiß, wie die LIBs in Turbo c++ eingebunden werden wäre ich über Hilfe dankbar.
-
Hallo
Das ist nicht der richtige Zusammenhang. Wenn wirklich die Lib nicht nicht richtig eingebunden wäre, würde der Linker zur Compile-Time meckern und dein Programm gar nicht erst starten.
Probleme zur Laufzeit sind Implementationsfehler. Benutzt den Debugger um die Konkrete Stelle zu finden und verfolge wichtige Variablen.bis bald
akari