Код: Выделить всё
begin
Application.Initialize;
Application.CreateForm (TForm1, Form1);
Application.Run;
end.
Как создать DLL ипроэкспортировать функцию - это понятно (обсуждалось в этом же разделе

А вот как вызвать запуск формы?
Попробовал сделать так (RunForm - это и есть экспортируемая процедура):
Код: Выделить всё
procedure RunDiagram; stdcall;
var iRes : integer;
var
vMainForm : TMainForm;
begin
Application.Initialize;
Application.CreateForm (TMainForm, vMainForm);
iRes := vMainForm.ShowModal ();
vMainForm.Release ();
exit;
end;
1) на том компьютере, где ранее исключения не было, оно появляется два раза и исключение возникает;
2) на другом компьютере вообще ни разу не появляется.
Если же ShowMessage ('TEST') наличествeт, то на обоих компьютерах все хорошо: оба сообщения ('FormDestroy' и 'TEST') появляются по разу.
Скорее всего, из такого непредсказуемого поведения можно сделать вывод, что где-то запарывается стек. Вот и интересно, я как-то неправильно вызываю эту форму из процедуры DLL-application-а?
Кто-нибудь пробовал делать что-либо подобное?
Заранее спасибо.