Einzelnen Beitrag anzeigen

XChris

Registriert seit: 2. Jun 2006
Ort: Softwaresklave
19 Beiträge
 
#5

Re: .net DLL in Delphi für Win32 nutzen

  Alt 16. Jun 2006, 09:20
Hallo,

ich bin ein Stück weiter. Bekomme aber in der Win32 Delpi Anwendung eine Fehler (Zugriff ins Leere ...)

Hier mein Code:

NET.dll:


Delphi-Quellcode:
unit Envisys.TestMich;
interface
uses System.Runtime.InteropServices;
type
[ComVisible(true)]
TestMich = class
private
{ Private-Deklarationen }
strict protected

public
constructor Create;
class function GetA(): Integer; static;
end;

implementation
constructor TestMich.Create;
begin
inherited Create;

// TODO: Hier die Konstruktorlogik einfügen
end;

[ComVisible(true)]
class function TestMich.GetA: Integer;
begin
result := 5;
end;
end.

dann hab ich in dem Verzeichniss wo die Anwendung liegt regasm.exe netstuff.dll aufgerufen. Nun will ich sie in delphi (Win32) nutzen:


Delphi-Quellcode:
unit Test;

interface

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

const NET_DLL='NetStuff.dll';
function GetA(): integer; stdcall; external NET_DLL;

type
TForm1 = class(TForm)
LabelName: TLabel;
procedure Button1Click(Sender: TObject);

private

public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
LabelName.Caption:= IntToStr(GetA());
end;

end.
Was mach ich nur falsch? Ich denke, der Zugriff in Win32 auf das ComObject ist falsch. Kann wer helfen?
  Mit Zitat antworten Zitat