Einzelnen Beitrag anzeigen

Sascha_OW

Registriert seit: 4. Aug 2005
Ort: Owschlag
129 Beiträge
 
Delphi 2005 Professional
 
#8

Re: DLL Datei, Button.Onclick Fehler

  Alt 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
  Mit Zitat antworten Zitat