У меня проблемы с использованием данных из хост-приложения.
Я хочу отправить строку через dll в хост, а затем объединить ее с некоторыми данными из приложения хоста.
Просто включив форму в предложения использования, я могу использовать методы для отправки данных на хост. Когда данные получены, я пытаюсь добавить переменную lokal, вот когда я получаю нарушение доступа:
Ведущий:
procedure TMainForm.DllLink(sMessage: String);
begin
try
//This is ok:
Showmessage(sMessage);
//This is causes Access error:
Showmessage(sMessage +sPid);
except
Showmessage('Access violation');
end;
end;
Dll:
procedure Transfer(sMessage: PChar); stdcall;
var
sMyPid : String;
begin
try
//Get error if i try to use this method to get sPid which is a string:
sMyPid := MainForm.GetPid;
//Or this:
MainForm.NextsysDllLink(sMessage);
except
showmessage('Error');
end;
end;
Я не думаю, что dll использует формы запущенных приложений, что является причиной нарушения доступа (может быть, я не прав?)
Как сделать, чтобы dll знала о работающем приложении (то есть его хост-приложении) и использовала этот экземпляр для получения или манипулирования данными из самого себя?
Я использую Delphi 5.