Hallo zusammen
ich habe eine
DLL bekommen und ein beispiel code für delphi der auch gut funktioniert.
In der .pas datei wird die Funktionalität der
DLL bereitgestellt.
in etwas so
delphi7!
Delphi-Quellcode:
unit SpsIo;
interface
uses Classes;
const
spsDll = '
IPS7LNK.DLL';
function IPS7Open (IPAdr : PChar; Rack : LongWord; Slot : LongWord; RxTimeout : LongWord; TxTimeout : LongWord ; ConnectTimeout : LongWord) : LongInt;
stdcall;
implementation
function IPS7Open;
external spsDll
name '
IPS7Open';
end.
wie gesagt so funktioniert es wunderbar
wenn ich diese funktionen in eine klasse einbinden will hab ich mir das in etwa so vorgestellt
Delphi-Quellcode:
unit SpsIo;
interface
uses Classes;
const
spsDll = '
IPS7LNK.DLL';
type TspsIo =
class
Address :
string;
handle : longInt;
constructor create(Addr :
String);
private
function IPS7Open (IPAdr : PChar; Rack : LongWord; Slot : LongWord; RxTimeout : LongWord; TxTimeout : LongWord ; ConnectTimeout : LongWord) : LongInt;
stdcall;
end;
implementation
function TspsIo.IPS7Open;
external spsDll
name '
IPS7Open';
constructor TSpsIo.create(Addr:
String);
begin
handle := -1;
handle := IPS7Open(pChar(Addr),0,2,0,0,0);
Address := Addr;
end;
.
end
so gekapselt gibt es bei genau dieser funktion eine
Access Violation bei andren funktionen auch mal ein EPrivilege error.
wo ist da der Unterschied beim Aufrufen der Funktion IPS7Open. Meiner Meinug nach habe ich die Funktionen doch nur in der Klasse gekapselt! Oder bin ich da falsch gewickelt?
Wäre schön wenn da mal jemand ein Auge draufwerfen könnte.
Im vorraus schon mal vielen Dank
Gruß
Stefan