![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WriteFile в чем ошибка??? [D5, D6, Win2k, WinXP]
Bers © (2003-11-25 11:10:00)
Доброго времени суток!
Уважаемые Мастера, подскажите в чем ошибка:
var j:Cardinal;
Tmp:PChar;
NewFile:string;
HW:THandle;
begin
...
j:=Length(NewFile)+1;
Tmp:=StrNew(PChar(NewFile));
WriteFile(HW,Tmp,j,j,nil);
StrDispose(Tmp);
...
end;
Все вроде хорошо, но вместо нужной строки в файл пишется какая-то галиматья. В чем ошибка?
Заранее благодарен.
С Уважением, Андрей.
Владислав (2003-11-25 16:42:00) [1]
> icWasya © (25.11.03 14:19) [9]
Гадание на кофейной гуще навело на такую мысль? ;)
MBo (2003-11-25 15:49:00) [2]
WriteFile(HW,NewFile[1],Length(NewFile),j,nil);
icWasya (2003-11-25 14:19:00) [3]
сдаётся мне, что в строке
WriteFile(HW,Tmp,j,j,nil);
на файл пишется j*j байт
Reindeer Moss Eater (2003-11-25 12:19:00) [4]
Ну и что? Смущает один и тот же тип данных у параметра?
ZrenBy (2003-11-25 11:59:00) [5]
Хе-Хе. Найдите разницу
из windows.pas)
function WriteFile(hFile: THandle; const Buffer; ...
function WriteFileEx(hFile: THandle; lpBuffer: Pointer; ...
А это их winapi
BOOL WriteFile(
HANDLE hFile,
LPCVOID lpBuffer,...
BOOL WriteFileEx(
HANDLE hFile,
LPCVOID lpBuffer,...
Bers (2003-11-25 11:53:00) [6]
А теперь вижу...
Reindeer Moss Eater (2003-11-25 11:47:00) [7]
Глагол Poins очень похож на существительное Pointer.
Но это не одно и тоже
Bers (2003-11-25 11:34:00) [8]
Спасибо.
Хотя в Help"е написано:
Points to the buffer containing the data to be written to the file.
С Уважением, Андрей.
Anatoly Podgoretsky (2003-11-25 11:32:00) [9]
К тому же это лишняя промежуточная переменная. NewFile уже содержит все необходимое для записи в файл. Стоит намного почитать про работу со строками.
Anatoly Podgoretsky (2003-11-25 11:30:00) [10]
Эта галиматься значение переменной Tmp и последующих байт, если J > 4
Reindeer Moss Eater (2003-11-25 11:22:00) [11]
Tmp - должен быть адресом записываемого блока, а не указателем на него