【发布时间】:2010-10-15 12:15:44
【问题描述】:
我通过 COM 在 Delphi 6 中使用 .Net2.0 程序集。 接口之一中的方法之一返回 IEnumerable。 只要我导入位于
中的 mscorlib.tlb“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727”
,我可以在 Delphi 6 中访问 IEnumerable 和 IEnumerator 接口。这是在 mscorlib_TLB.pas 中定义 IEnumerable 的部分:
// *********************************************************************//
// Interface: IEnumerable
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {496B0ABE-CDEE-11D3-88E8-00902754C43A}
// *********************************************************************//
IEnumerable = interface(IDispatch)
['{496B0ABE-CDEE-11D3-88E8-00902754C43A}']
function GetEnumerator: IEnumVARIANT; safecall;
end;
GetEnumerator 方法的返回值不是 IEnumerator,当我尝试将其强制转换为 IEnumerator 时会抛出“不支持接口”异常。
以前有没有人遇到过这个或类似的问题?怎么解决?
【问题讨论】:
标签: delphi com .net-2.0 ienumerable