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试过了没。。。
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
....
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试过了没。。。
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
....