msxml und VC7 error



  • Hallo Forum,
    gerade beschaeftige ich mich mit C++ und XML. Dafuer habe ich mir bei Codeguru ein Tutorial runtergeladen und msxml installiert.

    Das zip mit den Demo Dateien habe ich mir runtergeladen und in VC6 laeuft das auch alles sehr schoen durch.

    In VC7 kriege ich allerdings an dieser Stelle Probleme:

    XMLDOMDocumentPtr m_plDomDocument;
    IXMLDOMElementPtr m_pDocRoot;

    und zwar deklariere ich hier in einer .h diese beiden Variablen und jetzt steigt VC7 beim kompilieren aus mit der Meldung
    "error2872... mehrdeutiges Symbol "

    Kann mir jemand von euch sagen wieso? VC6 und VC7 greifen beide auf diese dll zu, die in der stdafx.h importiert wird:
    #import <msxml.dll> named_guids
    using namespace MSXML;

    und bis zur Variablendeklaration gibts auch keinerlei Probleme(die Deklaration erfolgt in VC6 und VC7 an gleicher Stelle in der selben header Datei). Braucht VC7 vielleicht irgendwelche anderen Typen? Ist mir voellig raetselhaft.
    Vielleicht kann von euch jemand was dazu sagen.

    Gruesse und Dank
    items



  • versuch mal
    int i;

    in einen Header zu schreiben !!



  • Moin,
    Dank erstmal fuer die Antwort. Ich habe nochmal bei Codeguru geguckt und der sagt an dieser Stelle folgendes:

    <zitat>
    At this point, we can start declaring some variable to use with the DOM. Open your dialog class' header file (XMLDOMFromVCDlg.h) and add the following smart pointer member variables where the IXMLDOMDocumentPtr is the pointer to the XML document itself and the IXMLDOMElement is a pointer to the XML document root (as explained above).
    IXMLDOMDocumentPtr m_plDomDocument;
    IXMLDOMElementPtr m_pDocRoot;
    </zitat>

    Das bedeutet doch nichts anderes als zwei ganz normale Membervariablen eines bestimmten Typs anzulegen.
    Vielleicht kannst du (oder jemand anderes) noch einen weiteren Satz dazu sagen? Ich verstehe nicht, worauf du hinaus willst mit dem Hinweis auf int i.

    Gruesse und Dank
    items



  • Ja, alles klaro ...
    sorry, habe übersehen, dass es Membervariablen sind.
    Also die Begründung liegt darin, dass in .NET die Symbole schon innerhalb des Headers 'comdefsp.h definiert.

    D.h. lass einfach die #import Anweisung sowie using namespace MSXML weg. Möglicherweise mußt du comdef.h bzw. comdefsp.h includieren



  • Hi,
    Supi! Danke. Probiere ich mal.

    Gruss
    items


Log in to reply