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?