使用VARIANT作为参数时的问题? ( 积分: 50 )

  • 主题发起人 主题发起人 wuqiu
  • 开始时间 开始时间
W

wuqiu

Unregistered / Unconfirmed
GUEST, unregistred user!
我用VC2003写了一个ActiveX,然后在Delphi中调用,其中有一个事件,在VC中是这样定义的
void RegisterDone(VARIANT reg)
{
FireEvent(eventidRegisterDone, EVENT_PARAM(VTS_VARIANT), reg);
}
========
调用部份代码:
VARIANT vTmp;
::VariantInit(&vTmp);
vTmp.vt = VT_I4;
vTmp.lVal = 100;
RegisterDone(vTmp);
================
在Delphi中使用则是:
procedure TfrmMain.fvcsRegisterDone(Sender: TObject
reg: OleVariant);
begin
// 在这里哪怕我是一行代码不写也会出错,错误信息:
// Access violation at address 7C2E7C97 in module 'MFC71D.DLL'. Read of address CCCC0003
end;

==============
这是怎么回事,请大家帮忙解决,谢谢!
 
我用VC2003写了一个ActiveX,然后在Delphi中调用,其中有一个事件,在VC中是这样定义的
void RegisterDone(VARIANT reg)
{
FireEvent(eventidRegisterDone, EVENT_PARAM(VTS_VARIANT), reg);
}
========
调用部份代码:
VARIANT vTmp;
::VariantInit(&vTmp);
vTmp.vt = VT_I4;
vTmp.lVal = 100;
RegisterDone(vTmp);
================
在Delphi中使用则是:
procedure TfrmMain.fvcsRegisterDone(Sender: TObject
reg: OleVariant);
begin
// 在这里哪怕我是一行代码不写也会出错,错误信息:
// Access violation at address 7C2E7C97 in module 'MFC71D.DLL'. Read of address CCCC0003
end;

==============
这是怎么回事,请大家帮忙解决,谢谢!
 
后退
顶部