Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Это просто обязано работать! но...
 
Написал программку, которая должна читать
с диска напрямую, однако чтения не происходит!
Перерыл кучу доков, в сотый раз облизал каждую строчку!
Она не читает хоть убей!
Я работаю с правами администратора, так что
не работает она не из за этого, уже излазил
везде, там говорят одно и тоже, главное права админа,
FILE_SHARE_WRITE, и всё будет работать, но ничего не происходит - мне возвращается пустой файл.
у меня winXP помогите, плиз!


program ReadWrtVolume;

uses
    Windows, Messages;


var
      flRd:h File;
      flWt:h File;
      wtd :DWORD;
      rdd :DWORD;
      buf :array[1..1000] of byte;



begin
    flRd := CreateFile(\\.\PHYSICALDRIVE0,
                    GENERI C_READ,
                      FILE_SHARE_WRITE,
                      nil,
                      OPEN_EXISTING,
                      FILE_ATTRIBUTE_NOR MAL,
                    0);
     flWt := CreateFile(hello.txt,
                    GENERI C_WRITE,
                      FILE_SHARE_READ,
                      nil,
                      OPEN_ALWAYS,
                      FILE_ATTRIBUTE_NOR MAL,
                    0);

    ReadFile(flRd, buf, 1000, rdd, nil);
    WriteFile(flWt, buf, rdd, wtd, nil);

    CloseHandle(flRd);
    CloseHandle(flWt);
end.
 
ошибки обработай.

что возвращает CreateFile() ? Что возвращает ReadFile() и WriteFile() ?. В rdd и wtd должно быть кол-во соответственно прочитанных и записанных байт.

скорее всего проблема еще на начальном этапе, CreateFile() не может открыть устройство и возвращает INVALID_HANDLE_VALUE или NULL или его аналог в дельфи, ReadFile() ничего из "нулевого" хэндла прочитать не может и пишет в rdd 0, а WriteFile() в свою очередь пишет в файл 0 байт (rdd).

приведенный код вообще явно не рабочий, так как hello.txt должно быть в кавычках, а вместо rdd и wtd в функцию должны передаваться указатели на rdd и wtd.

прочитай что написано в MSDN по поводу CreateFile, ReadFile, WriteFile.
 
2ивил"
во-первых, в этом форуме кавычки вырезаются!
во вторых - код рабочий, я проверял это под дебаггером,
ошибка происходит во время ReadFile, отладчик ругается на
INVALID_ID....

Думаю загвоздка в привилегиях...
 
Вернее кавычки вырезались в прошлой версии форума, когда я постил ту мессагу.
 
здесь есть пример
Страницы: 1
Читают тему (гостей: 1)