我有一个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对象吗?
答案 0 :(得分:2)
当您需要通过.NET从COM返回GUID时,您需要将其转换为Byte []或String,然后将其重建为另一侧的guid或执行字符串比较,因为GUID不是COM兼容类型。