Hi @ all,
ich versuche gerade, mich ein wenig in
DLL-Programmierung einzuarbeiten
Also, ich habe eine
DLL, die folgende Funktion exportiert (Form1 ist ein hinzugefügtes Formular):
Delphi-Quellcode:
type
TTestRec = record
edit : PChar;
check : Boolean;
end;
function DLLFormular: TTestRec; stdcall;
var
Form1: TForm1;
begin
Form1:=TForm1.Create(Application);
try
Form1.ShowModal;
Result.edit := PChar(Form1.Edit1.Text);
Result.check := Form1.CheckBox1.Checked;
finally
Form1.Release;
end;
end;
und eine Hauptanwendung, die die Funktion verwendet (Name: Form2):
Delphi-Quellcode:
function DLLFormular: TTestRec; stdcall; external 'pDLL.dll';
function GetStr(str: PChar): PChar; stdcall; external 'pDLL.dll';
procedure TForm2.Button1Click(Sender: TObject);
var
Rec: TTestRec;
begin
Rec := DLLFormular;
Label1.Caption := Rec.edit;
CheckBox1.Checked := Rec.check;
end;
Das klappt auch wunderbar, nur ist mein Problem, dass das
DLL-Formular einen zusätzlichen Taskleisten-Eintrag erzeugt. Es sind dann zwei Einträge vorhanden, obwohl ich nur einen benötige.
Ein ShowMessage in der
DLL-Form erzeugt übrigens noch einen dritten Eintrag...
Wie kann man das verhindern?
(Ich hoffe, ich habe mich verständlich ausgedrückt
)
Viele Grüße,
CK_CK