Показать сообщение отдельно

  #10  
Старый 29.06.2007, 18:10
Xserg
Участник форума
Регистрация: 09.12.2006
Сообщений: 135
С нами: 10222145

Репутация: 726
По умолчанию

Ну а я про общение процессов пример приведу.
Правда не понял на каком языке общаться.

I prefer named mapped virtual memory

Код:
 const
  sizebufo=$100000;
  C_ReadFile=5;
type
  my_virt_mem=record
              command:dword;
              sizeblock:dword;
              bufo:array [0..sizebufo] of byte;
                           end;
var
  fmo,host:dword;
  virtbuf:^my_virt_mem;
begin
// process headline (within each process)
host:=0;
fmo:=OpenFileMapping(FILE_MAP_WRITE or FILE_MAP_READ,true,'my_original_name');
if fmo=0 then begin// first run
fmo:=CreateFileMapping($ffffffff,0,SEC_COMMIT or PAGE_READWRITE,0,sizebufo,'my_original_name');
host:=1;      end;
virtbuf:=MapViewOfFile(fmo,SECTION_MAP_READ or SECTION_MAP_WRITE,0,0,0);
if virtbuf=nil then exit;
//-----------------------

if host=1 then begin // host process
virtbuf^.command:=C_ReadFile;
while virtbuf^.command<>0 do sleep(100);
               end;

if host=0 then begin // slave process
while virtbuf^.command=0 do sleep(100);
case virtbuf^.command of
C_ReadFile: begin
//I have no component InternetReadFileFromUrlAdnSaveToBuffer
//InternetReadFile(hURL,@virtbuf^.bufo,sizebufo,virtbuf^.sizeblock);
virtbuf^.command:=0;
             end;
end; // case
               end;
 
Ответить с цитированием