Hej, Det kan inte vara så enkelt att den måste destrueras helt för att låset ska försvinna? Det är skillnad på "." och "->" i det här fallet (vet inte varför, men det kanske någon annan vet...).MSXML låser fil
Jag använder mig av MSXML::IXMLDOMDocumentPtr -> load() funktion för att öppna en xml fil och hämta data.
När jag är klar så så anropar jag Release() för att frigöra objektet.
Problemet uppstår när ett annat program försöker öppna filen efteråt (första programmet är fortfarande igång) och jag får ett fel meddelande om att den inte kan öppna filen.
Ibland så fungerar det och ibland inte. Det känns som att MSXML ligger och blokerar filen...
Jag har satt async till FALSE:
Så hä här ser det ut:
// detta deklereras längt upp i filen
inline void TESTHR( HRESULT _hr )
{ if FAILED(_hr) throw(_hr); }
funktionHämtaData(filnamn)
{
MSXML::IXMLDOMDocumentPtr docPtr;
MSXML::IXMLDOMNodePtr node;
TESTHR(docPtr.CreateInstance("msxml2.domdocument"));
// load a document
_bstr_t value;
_variant_t varXml(filenamn);
_variant_t varOut(true);
docPtr->async = FALSE;
varOut = docPtr->load(varXml);
// läser data ....
// Frigör minne
node = NULL;
docPtr.Release();
docPtr = NULL;
}
Någon som har någon idé?
Mvh
Pierre
Sv: MSXML låser fil
Sv:MSXML låser fil
Jag skapar objektet med "." (Create.....)
och gör därför Release med ".".
Jag testade innan med "->" men då får jag ett exception.
Beroende på om jag skriver med "." eller "->" så har objektet olika metoder och medlemmar.
// Pierre