Hallo Leute!
Ich habe heute zum ersten mal das Programmieren mit DLLs ausprobiert und musste leider feststellen, dass es zu einer Zugriffsverletzung beim Schließen des Programms mit der
DLL kommt. Es werden KEINE STRINGS übergeben, da ich bereits gelesen habe, dass das zu Problemen führen kann! Ich habe außerdem noch den Ratschlag von Delphi befolgt "Sharemem" zu den Uses der
Unit UND des Projekts hinzuzufügen! Die
DLL liegt auch im Stammverzeichnis des Projekts!
Hier ist der Ausschnitt aus der
DLL, den ich verwende:
Delphi-Quellcode:
library Bianfable;
uses
SysUtils, Classes, Windows, Messages, Graphics, Controls,
Forms, Dialogs, StdCtrls, IniFiles, JPEG, ShellAPI, Menus;
procedure CenterWindow(F: TForm); stdcall;
begin
F.Left := Screen.Width div 2 - F.Width div 2;
F.Top := Screen.Height div 2 - F.Height div 2;
end;
//...
exports
CenterWindow,
//...;
begin
end.
So deklariere ich die Prozedur aus der
DLL in meinem Hauptprogramm:
Delphi-Quellcode:
type
//...
procedure CenterWindow(F: TForm); stdcall; external 'Bianfable.dll';
var
//...
Und so benutze ich die Prozedur schließlich:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
CenterWindow(Form1);
end;
Wär echt nett, wenn ihr mir sagen könntet, was ich noch falsch mache...
Bianfable...