| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > удаление с помощью SHFileOperation |
| Автор: shuttle 3.2.2009, 16:10 | ||
Использую SHFileOperation для удаления каталога.
В итоге каталог остается на месте. GetLastError - выводит 6 - ERROR_INVALID_HANDLE(The handle is invalid). В структуре SHFILEOPSTRUCT есть параметр hwnd. В MSDN написано hwnd - Window handle to the dialog box to display information about the status of the file operation. Я так понимаю для диалогового окна. А какое значение hvnd должно быть в консольном приложении. Или причина не в нем. |
| Автор: GoldFinch 3.2.2009, 16:22 |
| читай описание функции, там все написано |
| Автор: shuttle 4.2.2009, 06:41 | ||||
| что-то странное пошло. если пишу так
то SHFileOperation позвращает 1026. - неудачное выполнение (причем не могу найти описание этой ошибки). если
то все нормально. В чем может быть причина? |
| Автор: shuttle 4.2.2009, 10:20 | ||||
| вроде кое-что прояснилось. у sh.pFrom тип LPCTSTR, у меня переменная dir_temp типа wchar_t, оба Unicod-ские при копировании
компилятор не ругается, но видимо преобразование выполняется неправильно. И соответственно SHFileOperation (&sh); выполняется с ошибкой. Явное преобразование тоже не помогает
объявлять dir_temp типа LPCTSTR накладно, надо будет другую часть программы менять. Как правильно преобразовать из wchar_t к типу LPCTSTR? |
| Автор: Rififi 4.2.2009, 11:09 |
| shuttle, sh.pFrom=(LPCTSTR)dir_temp эту жуть убери, пока тебе руки не оторвали (: пути в функции должны завершаться двойным нулём _T('\0') |
| Автор: shuttle 4.2.2009, 11:40 | ||
так тоже пробовал не прокатывает. |
| Автор: GoldFinch 4.2.2009, 12:16 |
| посмотри под отладчиком что там реально передается |
| Автор: shuttle 4.2.2009, 12:57 | ||||||
Смотрел, строки полностью совпадают. Тут вот еще с переменными типа wchar_t покопался.
так не срабатывает а если инициализировать при объявлении(причем неважно какими данными), то нормально
так срабатывает В чем проблема????? Чудес же не бывает. |
| Автор: GoldFinch 4.2.2009, 13:07 |
| значит не совпадают. и выложи код, вместо "// сдесь что происходит" Добавлено через 4 минуты и 26 секунд попробуй заодно обнулить SHFILEOPSTRUCT |
| Автор: Rififi 4.2.2009, 13:33 | ||
| shuttle, кусок из рабочего кода
|
| Автор: shuttle 4.2.2009, 13:59 | ||
фрагмент текста
|