PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dll-programmierung


Mr. Boom
13.08.2002, 13:50
library mydll;

uses
SysUtils,
Classes;

{$R *.res}

function Hallo1():string;
begin
Hallo1:='Hallo1';
end;

function Hallo2():string;
begin
Hallo2:='Hallo2';
end;

exports
hallo1,
hallo2;

begin
end.
---------------------------------------------------------------------------------
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function Hallo1():string;external 'F:\Programmieren\delphi\Librarys\mydll.dll';
function Hallo2():string;external 'F:\Programmieren\delphi\Librarys\mydll.dll';
var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Edit1.Text:=Hallo1;
end;

end.


Wo ist hier das problem??? In der Laufzeit bekomme ich immer die Meldung: "Invalid Pointer operation"


Felix Kaiser
13.08.2002, 15:17
Ist das erste mal dass ich sehe, dass jemand versucht einzelne Funktionen innerhalb eines Objektes zu importieren. Nimm die mal aus der Klasse raus und definiere beide Funktionen einzeln. Dass so etwas funktionieren würde, wär mir auch neu, weils nirgends beschrieben ist.

Mr. Boom
13.08.2002, 15:34
Meinst du so:
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; ---------Klassenende???----------------

var
Form1: TForm1;
function Hallo1():string;external 'F:\Programmieren\delphi\Librarys\mydll.dll';
function Hallo2():string;external 'F:\Programmieren\delphi\Librarys\mydll.dll';

Die waren doch nicht in der Klasse? Ich denke doch bei "end; ^^" ist die klassen zu ende definiert??? Diese Änderung hat das selbe Ergebnis.

Oder was meinst du??? Die library ist aber korrekt, oder???