Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > обмен данными через memory mapped файл


Автор: slvax 13.1.2010, 21:50
Уважаемые профи, помогите плз разобраться с проблемкой. Суть проблемы в сследующем
Создаю map файл, отображаю его в памяти, в длл(хуке) записываю в поля map файла хэндл и текстовую строку. в главной программе читаю поля map файла, хэндл читается, а строка всегда null, не могу понять - в чем дело. На всякий случай привожу фрагменты программы.
Код

в map файле:
  PHookInfo = ^THookInfo;
  THookInfo = packed record
    text1:String;
    FormHandle: THandle; 
  end;
в длл
    s:='qq';
    CopyMemory(Pointer(DataArea^.text1),PChar(s),Length(s));
в главной программе:
    wnd:=DataArea^.FormHandle;
    t:=String(PChar(DataArea^.text1));


Автор: Демо 13.1.2010, 21:56
Кода совершенно недостаточно.
Нужен код c созданием отображения, получения в DLL, записи и чтения строк.

Автор: bems 14.1.2010, 20:51
map-файл это другое, исправил название.

Нельзя использовать String в этом случае. во-первых это не только массив символов, во-вторых у тебя только указатель в расшареной памяти, а не сама строка.

Автор: slvax 14.1.2010, 23:08
Спасибо, объявил массив символов и все заработало.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)