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