COM接口中函数返回中的Guid对象

时间:2013-01-14 23:09:46

标签: c# .net perl com

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

Guid 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对象吗?

1 个答案:

答案 0 :(得分:2)

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

相关问题