0

maged c ++/cliアセンブリをhtml内のオブジェクトとして使用しようとしています。

<object classid="http://127.0.0.1/xxx/yyy_CLI.dll#FooClass" id="dummy" ></object>

クラスはそのようです

#pragma once

using namespace System;
using namespace System::Runtime::InteropServices;

[Guid("D81FDD51-ABB0-480b-A5F9-0DE209C8456E")]
[ComVisibleAttribute(true)]
public interface class IFooClass
{
    virtual void Initialize() = 0;
};

[Guid("D0556663-B16C-403f-B6E1-C5154BE54EF9")]
[ComVisibleAttribute(true)]
public ref class FooClass: public IFooClass
{
public:
    FooClass(void);
    virtual ~FooClass(void);

    virtual void Initialize();

};

ただし、javascriptがInitializeメソッドを呼び出そうとすると、「...エラー:オブジェクトはこのプロパティまたはメソッドをサポートしていません...」と表示されます。

私は何が間違っているのですか?

4

1 に答える 1

0

COM に触れてから何年も経っていますが、次のようになります。

InterfaceType属性を介してインターフェイスタイプを設定する必要があると思います。何かのようなもの:

[InterfaceType(ComInterfaceType::InterfaceIsDual)]
[Guid("D81FDD51-ABB0-480b-A5F9-0DE209C8456E")]
[ComVisibleAttribute(true)]
public interface class IFooClass
{
...
}

また、Tlbexp.exe (Type Library Exporter) を使用しマネージクラスを COM にエクスポートする必要があります。

于 2013-02-18T00:38:19.617 に答える