Registriert seit: 4. Aug 2005
Ort: Owschlag
129 Beiträge
Delphi 2005 Professional
|
Re: DLL Datei, Button.Onclick Fehler
6. Sep 2005, 09:11
Habe das jetzt so gemacht wie ihr mir das gesagt habt, nun kann ich zwar die DLL Complieren aber in meinem Programm tritt ein Fehler auf:
Delphi-Quellcode:
library Project1;
{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muß die
erste Unit im Uses-Anweisungsteil des Interface-Abschnitts Ihrer
Unit sein, wenn Ihre DLL Prozeduren oder Funktionen exportiert, die
String-Parameter oder Funktionsergebnisse übergeben. Dies gilt für
alle Strings die an und von Ihrer DLL übergeben werden -- selbst
für diese, die in Records oder Klassen verschachtelt sind. ShareMem
ist die Schnittstellen-Unit zur DELPHIMM.DLL, welche Sie mit Ihrer
DLL weitergeben müssen. Um die Verwendung von DELPHIMM.DLL zu
vermeiden, übergeben Sie String-Parameter unter Verwendung von
PChar- oder ShortString-Parametern. }
uses
SysUtils,
Classes,
Unit1 in ' Unit1.pas',
forms,
Dialogs,
stdctrls;
type
TFenster = class(TForm)
public
procedure klick (sender: TObject);
end;
var Fenster :TFenster;
{$R *.RES}
function addiere(zahl1, zahl2: integer): integer; stdcall;
begin
result:=zahl1+zahl2;
end;
procedure TFenster.klick (sender: TObject);
begin
Showmessage (' ');
end;
procedure erstellen ;
var
btn :TButton;
feld : TEdit;
begin
Fenster := TFenster.Create(Application);
Fenster.Width := 1000;
Fenster.Height := 1000;
Fenster.left := 0;
Fenster.top := 0;
Fenster.caption := ' test';
//Fenster.show;
Fenster.visible := true;
btn := TButton.Create (Fenster);
btn.Parent := Fenster;
Btn.Height := 125;
Btn.Width := 125;
Btn.left := 0;
btn.top := 0;
btn.visible := true;
btn.caption := ' test';
btn.show;
btn.OnClick := fenster.klick;
Feld := TEdit.Create (Fenster);
end;
exports
addiere,
erstellen;
begin
end.
das ist die DLL und die Project datei:
Delphi-Quellcode:
unit test;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
TFenster :TForm;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
function addiere(zahl1, zahl2: integer): integer; stdcall; external ' project1.dll';
procedure erstellen; external ' project1.dll';
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
erstellen;
end;
end.
jetzt bekomme ich die Meldung: ... "Ressource TFenster nichtg gefunden..
Sascha Schwarz
|
|
Zitat
|