Autor Beitrag
DelphMan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57



BeitragVerfasst: Do 23.03.06 12:15 
Hallo,


ich habe folgendes Problem:


Ein Host-Programm erlaubt das Einbinden von DLLs,
um selbstgebastelte DLLs zum Laufen zu bringen.

Ich habe also in Delphi ein neues DLL-Projekt
angelegt.

Die DLL sieht so aus:


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
library DLLtest;


uses
  sharemem,
  SysUtils,
  Classes,
  dialogs;

{$R *.res}


function Addieren(x,y:word):Word; stdcall;
begin
  Addieren:=x+y;
end;


function Stringtest(x:word; const y:pchar):pchar; stdcall;
begin
Stringtest:=pchar('String = '+IntToStr(x)+y+'XX');
end;


exports
  Addieren,
  Stringtest;


begin
end.


Die Kommunikation mit der DLL klappt toll (Addieren, Stringtest).
Das Problem ist nur, dass beim Beenden des Host-Programms bzw. dem "Entladen" der
DLL im Host-Programm kommt es zu einer Exception c0000005 an Adresse 00000000
lesen von Adresse 00000000.

(Importiere ich die user32.dll in das Programm und mache eine MessageBoxA
damit und beende dann das Programm, beendet es sich ganz
normal. Das Problem sollte also an meiner DLL liegen.)


Für Hilfen wäre ich sehr dankbar!

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Do 23.03.06 13:37 
Magst du mal den Code deiner Aufrufenden Anwendung posten?
DelphMan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57



BeitragVerfasst: Do 23.03.06 13:50 
Hallo,

habe das Problem gelöst, gamz dummer Fehler:

Die Host-Anwendung hantiert mit Integer und die DLL mit Word ;-)))