C# COM接口中函数返回中的Guid对象
我有一个COM接口,其功能签名如下所述: GuidC# COM接口中函数返回中的Guid对象,c#,.net,perl,com,C#,.net,Perl,Com,我有一个COM接口,其功能签名如下所述: GuidGetGuid2() 它在一个类中实现: public Guid GetGuid2() { return Guid.NewGuid(); } 然后Perl需要使用这个函数 my $dotNetLib = 'MyCOMDLL'; my $server = Win32::OLE->new($dotNetLib) || die "Unable to launch server\n";
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:“类型不匹配”位于playerly.pl
我们是否可以在COM层中返回GUID对象?当您需要通过.NET从COM返回GUID时,您需要将其转换为字节[]或字符串,然后在另一侧将其重建为GUID或执行字符串比较,因为GUID不是COM兼容类型。您确定粘贴了正确的示例:在C#和perl部分中使用了不同的名称
GetGuid
和GetGuid2
。这是一个打字错误。。我修正了。嗨,保罗,我们需要获取GUID对象,这样我们就可以将GUID分配给另一个对象的属性。如果转换为字符串是我们唯一的选择,那么我们将走这条路。但是探索是否有任何我们可以在COM层公开的GUID。我完全知道你在说什么,因为我需要做同样的事情。这是我最后不得不采取的方法。谢谢保罗的评论