0

このC++/ CLIプロパティをCOMに公開していますが、COMは複合型の参照型プロパティのみを受け入れることができます(ポインタープロパティは受け入れません)。参照プロパティで使用されるクラスのプライベートメンバーを公開するための最良の方法は何ですか?私は次のことを試しました(参照へのポインターがないため、またはその逆の変換がどこかにないため、両方とも機能しません):

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;
    }
};

ここで何が間違っていますか(参照プロパティを使用する必要がある場合)?

4

1 に答える 1

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;
    }
};
于 2012-11-30T15:33:24.430 に答える