Трах с MoveFile[Ex]
Мне потребовалось переместить *себя* в %Temp%.MoveFile возвращает 0,MoveFileEx-тоже(разные флаги пробовал-ничего не помогло).Смотрел на ошибку-Sharing Violation.Сначала подумал,что просто не закрыл *себя*(просто я до этого делал Mapping),Mapping и его дескриптор.После того,как я и их закрыл,перемещения как-то всё равно не произошло.Описываю процесс работы моей проги(только основные детали):сначала открытие *себя*+Mapping,потом GetTempPath+GetTempFileName(lpTmpDir,lpPrefix,0,lpTmpFile),потом закрытие Mapping'а и *себя*,а потом,собственно,MoveFile[Ex] lpSelf,lpTmpFile[,флаги].Таким образом,никакие файлы никем не заняты,и можно свободно перемещать.Возможная проблема-расположение *себя* на D:,в то время как %Temp% расположен на C:/или неправильная комбинация флагов/наличие УЖЕ созданного Temp-файла(хотя я ставил флаг MoveFile_Overwrite).Ни на VB,ни на Asm'е не работает-всегда Sharing Violation:mad: .Раньше(в других программах) всё работало нормально,причём даже MoveFile(без Ex'ов) не отказывался перенести *себя* в %Temp%
при открытии самого себя открывай с флагом GENERIC_READ
или копируй через SHFileOperation