[ deerbeer @ 07.04.2008. 17:56 ] @
Problem je sledeci : Imam jedan .exe fajl i u njemu zapakovano jedan ili vise DLL-ova koje raspakujem pri start-u . Pri zatvaranju programa hocu da se ovi dll-ovi obrisu Code: // OnClose event POSITION ps = mapModules.GetStartPosition() ; while (ps) { LPCTSTR szModule = NULL ; HINSTANCE hInstance = NULL ; mapModules.GetNextAssoc(ps,szModule,hInstance) ; if (FreeLibrary(hInstance) ) { if (!DeleteFile(szModule)) { TCHAR szMsg [MAX_PATH]; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,GetLastError(),NULL,szMsg,MAX_PATH,NULL) ; MessageBox(szMsg,APP_NAME,MB_OK) ; // Access denied !!! } } } Medutim fajlovi se nikad ne obrisu i dobijem poruku Access denied .. Napominjem da su dll-ovi sa Normal File atributima i da imam sistemske privilegije i da ih pri izlasku iz programa uredno obrisem iz explorera. U toku runtime-a samo jednom pozivam LoadLibrary tako da reference count za taj dll bi trebao da je 0 . Ima li neko ideju a da nije sa batch fajlovima .... ? |