Einzelnen Beitrag anzeigen

Luck

Registriert seit: 7. Sep 2013
1 Beiträge
 
#1

Problem beim Entladen der borlndmm.dll

  Alt 20. Feb 2015, 07:30
Delphi-Version: XE2
Hi Leute ich bin auf ein lustiges Phänomen gestoßen und zwar habe ich auf meinem Rechner drei verschiedene Versionen einer Borlndmm.dll (V3.../ V16.../ V19...).

Nun habe ich eine Testapp geschrieben welche mir lediglich eine Dll auf Knopfdruck lädt und diese wieder entlädt.
Die zu ladende DLL enthält nichts außer einen sharemem Eintrag.

Nun zu meinem Problem wenn ich die DLL entladen möchte und ich benutze die V16.../ V19... Version der Borlndmm.dll welche ja automatisch durch sharemem geladen wird dann kommen enorm viele Exceptions mit der Meldung 'access violation at 0x00000000: read of address 0x00000000'.

Wenn ich jedoch das gleiche mit der Borlndmm.dll V3... mache dann passiert hierbei nichts und alles läuft wie es soll (DLLs laden und entladen).

Kann sich das von euch jemand erklären wieso die V16.../ V19... hierbei probleme haben?
Nur zur Info der sharemem existiert nur in der DLL nicht in der Testapp.


Der Code zum Laden der DLL:

const
Libname = 'C:\Data\TESTDLL.dll';

type
...

var
LibHandle: THandle;

implementation

{$R *.dfm}

procedure TForm.Load( Sender: TObject )
begin
LibHandle := LoadLibrary( Libname );
end

procedure TForm.UnLoad( Sender: TObject )
begin
FreeLibrary( LibHandle );
end

Code der DLL:

library TESTDLL

uses
sharemem, System.SysUtils, System.Classes;

{$R *.res}

begin
end

Geändert von Luck (20. Feb 2015 um 07:42 Uhr)
  Mit Zitat antworten Zitat