delphi7调用com的dll里面的方法老是提示类型不匹配解决方案

delphi7调用com的dll里面的方法老是提示类型不匹配

delphi7调用com的dll里面的方法老是提示类型不匹配

 com 类型的dll 已经在系统上注册成功   test.dll 

 里面有一个方法 Public  Function Read(dd As Double,ii1 As Integer,ss1 As String,ss2 As String, ii2 As Integer) As Long

我在delphi7里面申明了一个方法

function csdll22(): Longint ; stdcall;
var
lot:Longint;
dou:double;
i12:int64;
s1:widestring;
s2:widestring;
i13:int64;

vor:OleVariant;

begin
      try
       vor:=CreateOleObject('ICCardClass.CardProcess');
       lot:=vor.Read(dou,i12,s1,s2,i13);
        result:= lot;
        except
       on E:Exception do
       begin
       showmessage(e.Message) ;
       result:=99;
       end;
       end;
end;

 调用  vor.read() 方法  的时候捕获到异常提示    类型不匹配。

 用c++调用是成功的。c++ 申明了 BSTR 类型去对应 函数里面的 string 类型
 但是在delphi7 中没有找到这个类型,去网上找了下,说是对应到 delphi7的 widestring 但是我调用还是报错。。。 还是提示  类型不匹配。

 前辈们  请指导。。。。 



------解决方案--------------------
同意楼上!!
------解决方案--------------------
用pwidechar试过了没。。。delphi7调用com的dll里面的方法老是提示类型不匹配解决方案
coinitialize
....
var
 s1,s2:pwidechar;
begin
  getmem(s1,256);
  getmem(s2,256);
  ....
  lot:=vor.Read(dou,i12,s1,s2,i13);
  ....
  freemem(s1,256);
  freemem(s2,256);
  ....
end; 

couninitialize
....