![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как передать String в DLL?
Glonia Zbanov © (2002-05-17 11:18:00)Как передать String и DataSet в DLL?
Внук (2002-05-22 15:49:00) [1]>>PC Maniac (21.05.02 20:29)
Наверно, имелось в виду ShareMem.dcu? :)
PC Maniac (2002-05-21 20:29:00) [2]По поводу String. В каждой библиотеке, создаваемой дельфи есть сообщение по поводу delphimm.dll (так кажется) но проще передавать короткие строки в dll. Например string[20] или что-то вроде этого. Но IMHO гораздо проще для этого использовать PChar.
Andykor (2002-05-17 14:13:00) [3]Делаешь примерно следующее:
1. Dll.
В нее добавлена форма Form1, на нее добавлен DataSource1.
library dllDB;
uses
SysUtils,
Classes,
StdCtrls,
Forms,
Windows,
DB,
dbtables,
ddlDB1 in "ddlDB1.pas" {Form1};
procedure OpenDataSet(Str:PChar; DBDataSet:TDBDataSet; AppHandle:THandle);
begin
try
Application.Handle:=AppHandle;
Form1:=TForm1.Create(Application);
Form1.Label1.Caption:=String(Str);
Form1.DataSource1.DataSet:=DBDataSet;
Form1.DataSource1.DataSet.Open;
Form1.ShowModal;
finally
Form1.Free;
end;
end;
exports
OpenDataSet;
begin
end.
2. Программа.
На форму добалена Table1.
procedure OpenDataSet(Str:PChar; DBDataSet:TDBDataSet; AppHandle:THandle); external "dlldb.dll"
procedure TForm2.Button1Click(Sender: TObject);
begin
OpenDataSet("Пример",Table1,Application.Handle);
end;