2013-02-17 80 views
0

我想在html中使用c/C++程序集作为对象。COM对象C++/cli

<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试图调用初始化方法,它说 ” ...错误:对象不支持此属性或方法... “

我在做什么错?

回答

0

我可能是遥远这里,它一直年龄,因为我感动COM,但这里有云:

我认为你需要通过InterfaceType属性设置接口类型。

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

此外,您需要将托管类导出到COMTlbexp.exe(类型库导出):喜欢的东西。