![]() |
|
|
![]()
|
|
| ChihPih |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 3.12.2006 Репутация: 1 Всего: 22 |
Привет всем!
Проблема в следующем: иногда при использовании функции(ниже приведенной) выскакивает ошибка "Системе не удается найти указанный файл...", а иногда не выскакивает! В чем проблема? bool WINAPI ProcFiles(HANDLE Handle, UINT Operation, char *Data, char *Dest) { TSHFileOpStruct sh; bool check = false; sh.hwnd = Handle; sh.wFunc = Operation; sh.pFrom = Data,"\0"; if (Dest == ""){ sh.pTo = NULL; } else { sh.pTo = Dest,"\0"; } sh.fFlags = FOF_NOCONFIRMATION | FOF_SILENT; sh.hNameMappings = 0; sh.lpszProgressTitle = NULL; if (SHFileOperation(&sh) == 0){ check = true; } return check; } |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
???
Это равенство всегда неверно, Потому что ты сравниваешь не строки (массивы) а указатели на них. if(!Dest[0]) /*строка пустая*/ // если хочешь определить, что строка пустая (хотя странно, почему бы в функцию NULL не передать, вместо пустой строки) Это сообщение отредактировал(а) 586 - 28.8.2007, 22:04 |
|||
|
||||
| ChihPih |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 3.12.2006 Репутация: 1 Всего: 22 |
А тут чаво ненравится? |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
это в коде лишнее. равносильно этому
Это сообщение отредактировал(а) 586 - 11.5.2010, 04:02 |
|||
|
||||
| ChihPih |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 3.12.2006 Репутация: 1 Всего: 22 |
А в конце пути обязательно надо добавлять "\0" или char(0). Это в MSDN написано! И даже когда я на Delphi писал, без этого знака глюки вышеописанные были! Дак как правильно написать? |
|||
|
||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
ChihPih, в поля From и To можно несколько файлов передавать разделённых ';' и завершающим нулём, поэтому в конце строки должно быть два завершающих нуля
|
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
там по другому написано
И такие действия надо предпринимать перед вызовом функции ProcFiles, а если внутри функции - то надо выделять буфер на 1 размер больше, и дописывать нуль в конце. И еще: если сохранишь эту строку в AnsiString то ты этот нуль потеряешь. Это сообщение отредактировал(а) 586 - 29.8.2007, 23:38 |
|||
|
||||
| ChihPih |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 3.12.2006 Репутация: 1 Всего: 22 |
|
|||
|
||||
| ChihPih |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 3.12.2006 Репутация: 1 Всего: 22 |
Вот, сам накалякал!
Вроде бы сделал все как надо, а глюки теже! Это сообщение отредактировал(а) ChihPih - 30.8.2007, 21:02 |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
|
|||
|
||||
| ChihPih |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 3.12.2006 Репутация: 1 Всего: 22 |
А вот только почему +2, а не +1? И еще вопрос: а можно вот так?
Это сообщение отредактировал(а) ChihPih - 30.8.2007, 21:22 |
||||
|
|||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
||||
|
||||
| ChihPih |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 3.12.2006 Репутация: 1 Всего: 22 |
Спасибо за помощь!
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |