2013-02-17 119 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(類型庫導出):喜歡的東西。