MAPX在VC和C++builder的OCX导入类的比较。

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

下面是VC++和CB的OCX导入类的比较,可以看到CB用OCX是多么的麻烦。看来用CB做MAPX是一个错误的选择。

声明返回值:TAutoArgs<0> _args,而VC用double result;

代理方法:OlePropertyGet(_dispid, _args);而VC用GetProperty(0x5, VT_R8, (void*)&result);

返回:return _args.GetRetVariant();而VC用return result;

C++ Builder

VC++

OCX_H的内容摘录

interface CMapXRectangle : public TDispWrapper<IDispatch>

{....

double /*[VT_R8:0]*/ __fastcall get_Height()

{

_TDispID _dispid(/* Height */ DISPID(5));

TAutoArgs<0> _args;

OlePropertyGet(_dispid, _args);

return _args.GetRetVariant();

}

...

}

LIB_H的内容摘录:

template <class T> void __fastcall

CMapXRectangleDispT<T>::set_Height(double /*[VT_R8:0]*/ Value)

{

_TDispID _dispid(*this, OLETEXT("Height"), DISPID(5));

TAutoArgs<1> _args;

_args[1] = Value;

OlePropertyPut(_dispid, _args);

}

double CCMapXRectangle::GetHeight()

{

double result;

GetProperty(0x5, VT_R8, (void*)&result);

return result;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航