OleVariant的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 kirinma
  • 开始时间 开始时间
K

kirinma

Unregistered / Unconfirmed
GUEST, unregistred user!
安装了一个用vb开发的ActiveX控件,在我注册了ocx之后,delphi自动生成了一个pas文件
里面有一个函数,定义的格式如下:
function GetSkillGroup(skillGroup: OleVariant): Integer;
我在调用它的时候用的时如下方法:
Var
SkillGroup: OleVariant;
……
begin
……
SkillGroup:=VarArrayCreate([0,50],varOleStr);
Croups:=GetSkillGroup(SkillGroup);
……
Croups的值是可以得到的,SkillGroup是一个输出参数,但是现在执行完了之后SkillGroup总是空的,取不到数据,请问各位大侠应该如何解决?
本人对这方面的知识比较匮乏,请兄弟姐妹们不吝赐教!
(在线等)
 
安装了一个用vb开发的ActiveX控件,在我注册了ocx之后,delphi自动生成了一个pas文件
里面有一个函数,定义的格式如下:
function GetSkillGroup(skillGroup: OleVariant): Integer;
我在调用它的时候用的时如下方法:
Var
SkillGroup: OleVariant;
……
begin
……
SkillGroup:=VarArrayCreate([0,50],varOleStr);
Croups:=GetSkillGroup(SkillGroup);
……
Croups的值是可以得到的,SkillGroup是一个输出参数,但是现在执行完了之后SkillGroup总是空的,取不到数据,请问各位大侠应该如何解决?
本人对这方面的知识比较匮乏,请兄弟姐妹们不吝赐教!
(在线等)
 
从函数定义看好像skillgroup不是输出参数吧?
 
这个就是作为输出参数的,希望帮助解决,谢谢!!!!
 
这样试试呢?
function GetSkillGroup(out skillGroup: OleVariant): Integer;
 
这个函数返返回了一个整型值,你看看是多少??
 
我按照tseug的方法改了一下pas文件
现在又有了这个错误
Types of actual and formal var parameters must be identical
to cheepine
返回值是4,这个是与事实相符的
 
现在的情况是这样
pas文件里面的函数,定义的格式如下:
function GetSkillGroup(out skillGroup: OleVariant): Integer;
我在调用它的时候用的时如下方法:
Var
SkillGroup: OleVariant;
……
begin
……
SkillGroup:=VarArrayCreate([0,50],varOleStr);//varString也试过了,不行
Croups:=GetSkillGroup(SkillGroup);
……
运行时给出错误提示:
(安全数组接口)参数数据类型必须为字符类型
我要疯了,哪位神仙姐姐,天使大哥能帮我解决了这个问题?
本人对olevariant实在是不甚了解!
 
vb中函数的实现使用的是安全数组,请问安全数组在delphi中应该怎么使用?
 
如果是Out参数你就不要赋值了。
 
不止要修改函数体的
function GetSkillGroup(out skillGroup: OleVariant): Integer;
函数头也要修改参数为out类型
 
当然是一起修改的了,不然编译都通不过
已经不用那个方法了,谢谢大家的参与!
散分
 
后退
顶部