Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

Вот такая не задача... Помогите   Найти похожие ветки 

 
UserL   (2003-01-09 08:32) [0]

Объявил свой тип

type
PAppStructure = ^TAppStructure;
TAppStructure = packed record
ApplicationName: PChar;
ApplicationSize: Integer
GUIDName: PChar;
GUIDSize: Integer;
end;


Надо написать две функции, которые будут экспортированиы из EXE файла на вход которых будет подаваться вот такая структура.
Одна функция должна будет выделить память под PAppStructure, ApplicationName, GUIDName и отдать клиенту уже уже соданную структуру.
А другая функция будет освобождать выделенную память.

Вот функция, которая все это создает

function GetAppDesc(var AppDesc: POICAppStructure): BOOL; stdcall;
const
AppName = "AppName";
AppGuid = "21345-234-5-2345-2345";
var
HL: HLOCAL;
begin
GetMem(AppDesc, SizeOf(TOICAppStructure));

With AppDesc^ Do
Begin
ApplicationSize := Length(AppName);
GetMemory(ApplicationName, ApplicationSize + 1);
ZeroMemory(ApplicationName, ApplicationSize + 1);

GUIDSize := Length(AppGUID);
GetMemory(GUIDName, GUIDSize + 1);
ZeroMemory(GUIDName, GUIDSize + 1);
End;

StrPCopy(AppDesc^.ApplicationName, AppName);
StrPCopy(AppDesc^.GUIDName, AppGuid);

Result := True;
end;


Но затыкаеться на GetMem
Страно, что когда локально вызываю - все работает, а когда из другого exe - затыкаеться?
Что не правильно?


 
Digitman ©   (2003-01-09 09:45) [1]

Почему странно ? Ничего странного.

У разных процессов разные, абсолютно изолированные вирт.адресные пространства, и кучи разные.

Обратиться корректно к экспортируемой ф-ции GetAppDesc() подобным образом ты сможешь ТОЛЬКО из PE-модуля, который загружен в ВАП процесса, экспортирующего эту ф-цию GetAppDesc()



Страницы: 1 вся ветка

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
14-62815
Rouse_
2003-01-01 12:06
2003.01.20
Вот такие мы :))


4-62946
Alexsc
2002-12-06 10:02
2003.01.20
выключение компьютера


3-62400
an
2002-12-25 16:02
2003.01.20
Проблемма с DbCtrlGrid


14-62726
Mr.Ice
2003-01-03 21:58
2003.01.20
как обрезать переменную


6-62717
kalishenko stas
2002-11-20 10:53
2003.01.20
IP-адрес по имени хоста