Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
132 / 129 / 31
Регистрация: 12.12.2011
Сообщений: 463

Параметр [pbCancel] в WinAPI.CopyFileEx

05.02.2020, 21:10. Показов 3089. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните, в чем причина такого поведения? Все директории и файлы существуют.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm5.Button1Click(Sender: TObject);
var
  SourceFN, DestFN, CurrentDir: string;
  Result: Boolean;
  FlCancel: Boolean;
  LastError: DWORD;
begin
  CurrentDir := ExtractFilePath(ParamStr(0));
 
  SourceFN := CurrentDir + 'Source\123.txt';
  DestFN := CurrentDir + 'Dest\123.txt';
 
  //ShowMessage: Fail! E:1235 (Запрос был прерван)
  Result := CopyFileEx(PChar(SourceFN), PChar(DestFN), nil, nil, @FlCancel, COPY_FILE_RESTARTABLE or COPY_FILE_ALLOW_DECRYPTED_DESTINATION);
 
  //ShowMessage: Ok!
  Result := CopyFileEx(PChar(SourceFN), PChar(DestFN), nil, nil, nil, COPY_FILE_RESTARTABLE or COPY_FILE_ALLOW_DECRYPTED_DESTINATION);
 
  if Result then
    ShowMessage('Ok!')
  else begin
    LastError := GetLastError;
    ShowMessage('Fail! E:' + IntToStr(LastError) + ' (' + SysErrorMessage(LastError) + ')');
  end;
end;
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.02.2020, 21:10
Ответы с готовыми решениями:

CopyFileEx+winapi+qt
Здравствуйте мне нужно скопировать файл допустим 10 гигов и нужно чтобы прогресс копирования отображался в прогресс баре я понял что мне...

CopyFileEx+winapi
Здравствуйте мне нужно скопировать файл допустим 10 гигов и нужно чтобы прогресс копирования отображался в прогресс баре я понял что мне...

WinAPI - Невозможно преобразовать параметр из 'const char [26]' в 'LPCWSTR'
Здравствуйте!! Начал немного изучать WinAPI!! и тут возникла проблемка "Невозможно преобразовать параметр из 'const char ' в...

26
132 / 129 / 31
Регистрация: 12.12.2011
Сообщений: 463
05.02.2020, 22:19  [ТС]
Студворк — интернет-сервис помощи студентам
northener, FlCancel: LongBool; решает проблему! Все встало на свои места. Спасибо! Тупанул...

Добавлено через 2 минуты
Цитата Сообщение от AzAtom Посмотреть сообщение
я этот момент не понял, но если задать
А вот теперь дружно идем курить мануалы про boolean, bool и longbool!

Добавлено через 7 минут
GunSmoker уже курил энту тему
0
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,487
05.02.2020, 22:23
После просмотра окна процессора понял разницу между bool и boolean. Bool занимает 4 байт, а boolean занимает 1 байт. Таким образом, если используем boolean, то функция копирования считывает подряд 4 байта, 3 из которых принадлежат другим переменным и не равны 0 в общем случае.

ЗЫ. С таким же успехом можно передать туда и integer, предварительно обнулив его.

Добавлено через 1 минуту
Цитата Сообщение от Vabos Посмотреть сообщение
А вот теперь дружно идем курить мануалы про boolean, bool и longbool!
Ну да. А ещё лучше было сразу объявлять bool, как запрашивает функция.
Но тема полезная оказалась, я ведь раньше думал, что boolean тоже занимает 32 бит.
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
06.02.2020, 02:39
Цитата Сообщение от Vabos Посмотреть сообщение
northener, FlCancel: LongBool; решает проблему! Все встало на свои места.
Тогда мой совет вам на будущее. Изучая WinAPI функции не ограничивайтесь только документацией. По крайней мере первое время. Порой очень полезно взглянуть как та или иная функция объявлена в модуле Windows.pas.
0
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,487
06.02.2020, 09:15
Цитата Сообщение от northener Посмотреть сообщение
полезно взглянуть как та или иная функция объявлена в модуле Windows.pas
Это написано в подсказке, когда открываешь скобку.
0
07.02.2020, 03:21

Не по теме:

Цитата Сообщение от AzAtom Посмотреть сообщение
Это написано в подсказке, когда открываешь скобку.
Терпеть не могу эту подсказку! Толку от неё никакого!
Мало того что она появляется когда я смотрю только на клаву, так она еще и исчезает как только я оборачиваю свой взгляд на введенный мною код на экране!
:)

0
Модератор
 Аватар для D1973
9939 / 6475 / 2459
Регистрация: 21.01.2014
Сообщений: 27,450
Записей в блоге: 3
07.02.2020, 04:14

Не по теме:

Цитата Сообщение от northener Посмотреть сообщение
она появляется когда ... так она еще и исчезает как только ...
Вы ее не любите - вот она и вредничает...


0
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,487
07.02.2020, 04:54
А мне нравится подсказка. Запоминать все параметры всех функций, их типы и порядок - не моё.
И не пропадает обычно. Пропадает только если пошёл гулять по другим строкам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2020, 04:54
Помогаю со студенческими работами здесь

Окно на WinAPI, параметр функции WndProc (HWND hWnd,.)
Пытаюсь понять какое значение хранит первый параметр HWND hWnd в функции WndProc. В Windows в качестве окна может быть не только главное...

Копирование файлов функцией CopyFileEx(...)
Пишу класс для отображения процесса копирования файлов. Вот что получилось: using System; using System.Collections.Generic; using...

Зависание CopyFileEx при перемещении формы
Приветствую всех! Такая вот проблемка, помогите, пожалуйста, решить ее. Копирую файлы функцией CopyFileExWindows.CopyFileEx( ...

Права на файлы, создаваемые через CopyFile, CopyFileEx
Всегда было красиво и понятно: на файлы, копируемые с помощью CopyFile и CopyFileEx - права назначались в соответствии с каталогом, в...

Обновлением Progress Bar Ctrl при использование CopyFileEx
Доброго времени суток. Visual c++ не очень хорошо знаю, потому прошу строго не судить за нубские вопросы. Необходимо организовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru