2

我有一个 COM 接口,它具有如下所述的函数签名:

指导 GetGuid2()

它在一个类中实现:

    public Guid GetGuid2()
    {
      return Guid.NewGuid();
    }

那么这个函数需要被 Perl 使用。

    my $dotNetLib = 'MyCOMDLL';
    my $server = Win32::OLE->new($dotNetLib) || die "Unable to launch server\n";
    my $guid = $server->GetGuid2();

但我收到此错误:

Win32::OLE(0.1601) 错误 0x80020005: Playground.pl 中的“类型不匹配”

我们可以在 COM 层返回 GUID 对象吗?

4

1 回答 1

2

当您需要通过 .NET 从 COM 返回 GUID 时,您需要将其转换为 Byte[] 或 String,然后将其重建为另一侧的 guid 或执行字符串比较,因为 GUID 不兼容 COM类型。

于 2013-01-15T00:07:09.937 回答