I need to use a DLL created using .NET framework. This DLL is made COM visible.
I want to use this DLL in an application created using Delphi 2006. I have followed following steps:
Imported the type library using Delphi IDE. It created _TLB.pas file. Following signature was created in TLB file.
function TValidationRequest.Process(var meterBSN: WideString; var NICSerial: WideString;
var partNumber: WideString; var otherConfig: WideString;
out returnMessage: WideString): Smallint;
begin
Result := DefaultInterface.Process(meterBSN, NICSerial, partNumber, otherConfig, returnMessage);
end;
I tried to call the method using following code snippet.
procedure TForm1.buttonClick(Sender: TObject);
var
valReq: TValidationRequest;
s1, s2, s3, s4, s5: WideString;
o: WideString;
begin
valReq := TValidationRequest.Create (Self);
try
valReq.Process (s1, s2, s3, s4, o);
MessageDlg(o, mtInformation, [mbOK], 0);
finally
valReq := nil;
end;
end;
But I get following error when Process method is called.
Please can you suggest any solution?
Try initializing the WideStrings (s1,s2,s3,s4, and maybe even o). If I recall correctly, they are dynamic in Delphi and nil (000000000) before you set them up.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With