Hi,
Es wird immer seltsamer .....
Code:
//
dl:= IA4APrivate.iA4APrivateGetVersion;
dl:= $12345678;
versionString:= IntToHex(hiWord(
dl),4) + '.' + IntToHex(loWord(
dl), 4);
Funktioniert wunderbar, inkl. Abruf des Resultats über GetVersionString.
Auch der Originalcode liefert intern den richtigen String ab. Die
AV kommt erst beim Aufruf von GetVersionString.
Code:
type TA4APrivate = Class (TObject)
Private
IA4APrivate: A4APrivateDeclaration.IA4APRIVATE;
versionString: String;
function InterfaceOk: boolean;
function IsResultOk(const lastResult: dWord): boolean;
Public
constructor Create;
Destructor Destroy; override;
Function InitInterface(const asioInterface: Asio.IAsio): boolean;
Function GetVersionString:string;
end;
implementation
Uses sysUtils,
activeX;
....
Function TA4APrivate.GetVersionString: string;
begin
result:= versionString;
end;