Показать сообщение отдельно
  #11  
Старый 11.04.2013, 16:24
kudesnik kudesnik вне форума
Прохожий
 
Регистрация: 06.02.2012
Сообщения: 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Ну так ты передаешь указатель на данные которые в ЧУЖОЙ программе, а достать их пытаешься из СВОЕЙ. Надо либо через память с общим доступом это передавать, либо через readprocess вытягивать.

1. Я никак не могу передать указатель которые в ЧУЖОЙ программе
2. программа только одна а чужая, своя - ты просто зачитался. разницы никакой

Цитата:
Сообщение от M.A.D.M.A.N.
Еще и код толком не отформатирован, читать невозможно.

3. чтобы было понятнее. это код библиотеки.
Код:
function NewReadFile(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD;  var lpNumberOfBytesRead: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;
var
  NewBuffer: string;
begin
  NewBuffer := pchar(@Buffer); 
  showmessage(NewBuffer); // не выводится то что в файле
  result := TrueReadFile(hFile,Buffer,nNumberOfBytesToRead,lpNumberOfBytesRead,lpOverlapped);
end;

это код программы
Код:
procedure TForm1.Button1Click(Sender: TObject);
var 
  fHandle: THandle; 
  Buffer: array[0..255] of Char; 
  a: Cardinal; 
begin 
  fHandle := CreateFile('C:\1.txt', Generic_read, 0, Nil, open_existing, 0, 0); 
  ReadFile(fHandle, Buffer, 5, a, 0);
  Edit1.Text:=Buffer;// выводится то что в файле
  CloseHandle(fHandle);
end;