有没有办法在 OleVariant 中传递包装并解开 TObject 后代?我正在尝试跨自动化对象传递 TObject。我知道这不是一个好主意,但我没有更好的选择。
该对象将在来自同一自动化 dll 的对象之间传递(如果这有什么区别的话)。
像这样的事情:
function GetMyObjAsVariant;
var
MyObj: TMyObj;
begin
MyObj := TMyObj.Create;
result := OleVariant(MyObj);
end;
客户端将使用它作为
var
MyObj: TMyObj;
begin
MyObj := GetMyObjAsVariant as TMyObj;
end;
编译失败,返回
E2015 Operator not applicable to this operand type.
您可以编写并注册自定义变体类型;看一下TSQLTimeStampVariantType
举个例子。
另一种方法是为您的类编写一个自动化包装器。双调度接口自动支持后期绑定IDispatch
这是由OleVariant
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)