Einzelnen Beitrag anzeigen

bianfable

Registriert seit: 20. Nov 2007
23 Beiträge
 
#1

Zugriffsverletzung bei DLL-Benutzung

  Alt 27. Okt 2008, 18:46
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...
  Mit Zitat antworten Zitat