2

以下に説明するように、関数シグネチャを持つ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オブジェクトを返すことは可能ですか?

4

1 に答える 1

2

.NET 経由で COM から GUID を返す必要がある場合、GUID は COM 互換ではないため、それを Byte[] または String に変換してから、反対側で GUID に再構築するか、文字列比較を実行する必要があります。タイプ。

于 2013-01-15T00:07:09.937 に答える