Probleme mit XML



  • Hallo,

    Ich habe hier ein grösseres Projekt am laufen, habe das ganze jetzt mal bei mir zuhause installiert und musste feststellen, dass alles läuft ausser das lesen eines XML Files.

    Hier ist der Code:

    bool CReadExternFiles::openXMLFile()
    {
    	m_strXMLFileName  = _T("modell.xml");
    
    	CString strTemp   = m_strXMLFilePath + m_strXMLFileName;
    	m_bstrXMLFileName = strTemp.AllocSysString();
    
        if (!FileExists(_T("strXMLFileName  "))) StopBox(_T("file existiert nicht!"));
    
    	// call the IXMLDOMDocumentPtr's load function to load the XML document
    	variant_t vResult;
    	vResult = m_plDomDocument->load(m_bstrXMLFileName);
    	if (((bool)vResult) == TRUE) // success!
    	{
    		// now that the document is loaded, we need to initialize the root pointer
    		m_pDocRoot = m_plDomDocument->documentElement;
    		m_pTempDocRoot = m_pDocRoot;
    
    		//TestAusgabe
    		//AfxMessageBox(m_plDomDocument->xml);
    		return TRUE;
    	}
    
    	else
    	{
    		return FALSE;
    	}
    }
    

    Klar ist, das Files existiert! Aber die Funktion liefert mir immer ein False zurück. vResult ist FALSE!

    Das XML wurde aber korrekt initialisiert soviel ich das erkennen kann:

    void CReadExternFiles::init()
    {
    
    	//Initialisierung vom OLE Support
    	AfxEnableControlContainer();
    	::AfxOleInit();
    
    	if(g_bCoInit == FALSE)
    	{
    		//COM Initialisierung
    		::CoInitialize(NULL);
    		g_bCoInit = TRUE;
    	}
    
    	HRESULT hr = m_plDomDocument.CreateInstance(CLSID_DOMDocument);
    	if (FAILED(hr))
    	{
    	 _com_error er(hr);
    	 AfxMessageBox(er.ErrorMessage());
    	}
    
    	//Öffnen des XML File
    	openXMLFile();
    }
    

    Im Header File ist auch die DLL (ist im windows/system32) importiert:

    #import <msxml.dll> named_guids
    using namespace MSXML;
    

    Ich denke wenn ich keine XML Unterstützung hätte, dann würde die init Funktion fehlschlagen aber das tut sie nicht. Nun frage ich mich wieso er mir das xml file nicht öffnen kann? 😕



  • if (((bool)vResult) == TRUE)
    

    Dieses Typecast dürfte schief gehen: ein Variant erwartet 0xFFFF für "true", das Typecast ergibt aber bei "true" eine 1



  • CodeWalker schrieb:

    if (((bool)vResult) == TRUE)
    

    Dieses Typecast dürfte schief gehen: ein Variant erwartet 0xFFFF für "true", das Typecast ergibt aber bei "true" eine 1

    Wieso funktioniert es dann auf dem einen PC und auf dem andern nicht? Habe geschaut was da zurückkommt, bei meinem PC zuhause ist es ein {0 VT_I2} und das heisst, dass der Aufruf nicht erfolgreich war... die Frage ist, wo läuft was schief?


Anmelden zum Antworten