Перерыл Google, форумы и т.д.
Проблема в создании компонентов из DLL.
Создаю форму из длл примерно так:
PHP код:
function CreateTheForm: Pointer;
begin
Result := TForm1.Create(nil);
end;
function ShowTheForm(P: Pointer): Boolean;
const
mrOK = 1;
begin
Result := TForm1(P).ShowModal = mrOK;
end;
ShowTheForm(CreateTheForm);
Вроде все тип топ "Создалась, проявилась"...
создаю компонент где то так:
PHP код:
CoInitializeEx(nil,COINIT_APARTMENTTHREADED);
RdpDoc.Rdp:= TMsRdpClient3.Create(Form1);
RdpDoc.Rdp.Parent:= Form1;
RdpDoc.Rdp.Left:=10;
RdpDoc.Rdp.Top:=10;
RdpDoc.Rdp.Visible:=True;
RdpDoc.Rdp.Tag:=0;
RdpDoc.Rdp.Server:='192.168.1.1';
RdpDoc.rdp.UserName:='111';
RdpDoc.rdp.AdvancedSettings4.Set_ClearTextPassword('111');
RdpDoc.rdp.Connect;
в ЕХЕ все отлично а вот в длл как то не получилось.... (Форма виснет при создание RDP компонента).
Если в длл вызвать форму так:
PHP код:
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
то компонент RDP создаеться но при попытки вызова функции Connect виснет аналогочно первому варианту.
Перечитал все, видел такую же проблему и с TWebBrowser...
По теме нашел:
http://www.sql.ru/forum/actualthread.aspx?tid=106803
у парня таже проблема ну думаю это не из за самого компонента, есть какой то подводный камень в этой жуткой мути...
Задача: Адекватно работать с компонентами из DLL. Накидайте ссылок, может кто то тоже сталкивался с этим. Заранее спасибо.