Einzelnen Beitrag anzeigen

jag_the_rapper

Registriert seit: 10. Okt 2006
Ort: Erfurt
8 Beiträge
 
#3

Re: EInvalidPointer nach Programmende (DLL wurde eingebunden

  Alt 16. Okt 2006, 14:00
Also ich habe es statisch und dynamisch probiert, aber in beiden Fällen kommt nach Programmende die Exzeption. Was die Aufrufkonventionen angeht, da bin ich mir nicht so ganz sicher! Ich fide nirgends ein ordentliches Beispiel. Immer erklären die wie man ne Dll schreibt mit Stringübergabe und bei der implementierung nehmen die ne dll-Funktion mit nem integer, was natürlich vollkommen sinnig ist!!! bei mir sieht es so aus:

in der DLL
Delphi-Quellcode:
library HelloWorld;

uses ShareMem, SysUtils, Classes, Dialogs;

procedure TextOut(AMessage : string); stdcall;
begin
  ShowMessage(AMessage);
end;

{$R *.RES}

exports
  TextOut;

begin
end.
und jetzt das eigentliche Programm
Delphi-Quellcode:
unit Unit1;

interface

uses ShareMem, Windows, Messages, SysUtils, Classes, Graphics,
     Controls, Forms, Dialogs, StdCtrls;

type TForm1 = class(TForm)
       Button_ShowHelloWorld: TButton;
       procedure Button_ShowHelloWorldClick(Sender: TObject);
     end;

var Form1: TForm1;

implementation

procedure TextOut(AMessage : string); stdcall; external 'HelloWorld.dll';

{$R *.DFM}

procedure TForm1.Button_ShowHelloWorldClick(Sender: TObject);
begin
  TextOut('Hallo Welt');
  Self.Close;
end;

end.
Wo steckt mein Denkfehler???
  Mit Zitat antworten Zitat