Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# COM接口中函数返回中的Guid对象_C#_.net_Perl_Com - Fatal编程技术网

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

C# 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";

我有一个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:“类型不匹配”位于playerly.pl


我们是否可以在COM层中返回GUID对象?

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

您确定粘贴了正确的示例:在C#和perl部分中使用了不同的名称
GetGuid
GetGuid2
。这是一个打字错误。。我修正了。嗨,保罗,我们需要获取GUID对象,这样我们就可以将GUID分配给另一个对象的属性。如果转换为字符串是我们唯一的选择,那么我们将走这条路。但是探索是否有任何我们可以在COM层公开的GUID。我完全知道你在说什么,因为我需要做同样的事情。这是我最后不得不采取的方法。谢谢保罗的评论