gpt4 book ai didi

delphi - IEnumerable.GetEnumerator() 在 Delphi 6 中返回 IEnumVariant

转载 作者:行者123 更新时间:2023-12-02 09:16:38 26 4
gpt4 key购买 nike

我正在 Delphi 6 中通过 COM 使用 .Net2.0 程序集。其中一个接口(interface)中的方法之一返回 IEnumerable。只要我导入位于

的 mscorlib.tlb

“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727”

,我可以在Delphi 6中访问IEnumerable和IEnumerator接口(interface)。这是在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 时,会引发“接口(interface)不支持”异常。

以前有人遇到过这个问题或类似的问题吗?怎么解决?

最佳答案

这是通过 COM 互操作与 .NET 对象交互时的标准行为,如下所示:

http://msdn.microsoft.com/en-us/library/111chfb8(VS.71).aspx

关于delphi - IEnumerable.GetEnumerator() 在 Delphi 6 中返回 IEnumVariant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/682458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com