![]() |
Problem: DLL Funktion kann nicht 2x aufgerufen werden ?!
Hallo,
Ich schreib gerade eine DLL die man in verschiedene Programmiersprachen integrieren soll. In der DLL befindet sich ein ComServer sowie zahlreiche Funktionen unter anderem auch mehrere um ein Datenformat zu bearbeiten das unterteilt ist in Branch's und Leaf's (also Stämme und Blätter). Das Datenformat ist kommt einer Baumstruktur gleich. Nun das Problem. Ich habe 2 Dialoge in die DLL ausgelagert, die auch von anderen programmen genutzt werden soll.
Delphi-Quellcode:
function ExecuteBranchDialog(ParentWindow: LongWord; pItemData: PSTRUCTPCSITEM): Boolean; stdcall; export;
var P: TdlgBranchEditForm; begin Result := FALSE; try if (pItemData = nil) or (pItemData^.ItemType <> PCSITEMBRANCH) then Exit; P := TdlgBranchEditForm.CreateParented(ParentWindow); P.txtBranchname.Text := pItemData^.ItemName; P.txtUpdateRate.Text := IntToStr(pItemData^.ItemUpdateRate); P.ShowModal; Result := P.WindowResult; if (Result) then begin pItemData^.ItemName := P.txtBranchname.Text; pItemData^.ItemUpdateRate := StrToIntDef(P.txtUpdateRate.Text, 0); end; P.Free; except Result := FALSE; end; end; Der Pointer bei der Übergabe ist gültig (mehrmals überprüft), trotzdem kommt eine EAccessViolation Exception. Auch wenn ich die anderen Funktionen aus meiner DLL mehrmals hintereinander aufrufe kommt der Fehler... Hat jemand ne Ahnung warum Delphi das macht? Hier mal die Deklarationen und auch die Deklarationen von anderen functions:
Delphi-Quellcode:
Gruß function CreateProcessControl(pPCS: PSTRUCTPCS): Boolean; stdcall; external PCSDLL; function FreeProcessControl(pPCS: PSTRUCTPCS): Boolean; stdcall; external PCSDLL; function CreateBranch(pPCS: PSTRUCTPCS; BranchName: ShortString; UpdateRate: Integer): Byte; stdcall; external PCSDLL; function GetVarTypeName(VarType: Integer): ShortString; stdcall; external PCSDLL; function GetVarType(VarTypeName: ShortString): Integer; stdcall; external PCSDLL; function ExecuteBranchDialog(ParentWindow: LongWord; pItemData: PSTRUCTPCSITEM): Boolean; stdcall; external PCSDLL; Andi [edit=Luckie] Zitat:
Mfg, Luckie[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz