2012-11-28 54 views
0

我曝光這個C/CLI屬性COM和COM僅可以接受的複雜類型引用類型屬性(它不會接受指針屬性)。什麼是揭露一類的私有成員與參考屬性中使用的最佳方法?我嘗試了以下(兩者不工作,因爲我缺少一個指針引用,反之亦然轉換的地方):C++/CLI參照屬性

private: 
    Object _myProp; 
public: 
property Object %MyProp { 
    virtual Object %get() 
    { 
     return _myProp; 
    } 
    virtual void set(Object %value) 
    { 
     _myProp = value; // this line doesn't work 
    } 
}; 

我試過這樣:

private: 
    Object ^_myProp; 
public: 
property Object %MyProp { 
    virtual Object %get() 
    { 
     return _myProp; // this line doesn't work 
    } 
    virtual void set(Object %value) 
    { 
     _myProp = %value; 
    } 
}; 

我在做什麼錯這裏(鑑於我必須使用引用屬性)?

+0

很難猜測你所說的「參考屬性」的意思。用^替換%,Object已經是引用類型。 –

+0

漢斯,不與COM工作。 http://stackoverflow.com/questions/12976506/c-sharp-property-exposed-to-vba-com-run-time-error-424-object-required。它必須是一個引用屬性,指向一個不工作。 – Adam

+0

這並不在物業工作。在這裏描述了這個問題:http://stackoverflow.com/a/9924325/17034 –

回答

0

我試圖用「^」返回_myProp,我發現我應該使用「*」

private: 
    Object ^_myProp; 
public: 
property Object %MyProp { 
    virtual Object %get() 
    { 
     return *_myProp; // this line NOW works 
    } 
    virtual void set(Object %value) 
    { 
     _myProp = %value; 
    } 
};