0

私のクラスは以下で定義されています: (スニペット)

public ref class PixelFormatDescriptor
{
  public:
    PixelFormatDescriptor();
    PixelFormatDescriptor(PIXELFORMATDESCRIPTOR *pfd);

    const PIXELFORMATDESCRIPTOR* operator*(System::Drawing::GLSharp::PixelFormatDescriptor ^p)
    {
      return m_pfd;
    }
...
  private:
    PIXELFORMATDESCRIPTOR *m_pfd;
};

私は以下でそれを使用しようとしています:

PixelFormatDescriptor ^pfd = new PixelFormatDescriptor();
::ChoosePixelFormat(m_hdc, pfd);

私の問題は、ChoosePixelFormatpfd が aであると予想されることです。名前付きプロパティまたは Get メソッドを実装しなくてもconst PIXELFORMATDESCRIPTOR *、 a を渡して自動的に をPixelFormatDescriptor ^返せるように演算子のオーバーロードを修正するにはどうすればよいでしょうか。PIXELFORMATDESCRIPTOR *

4

2 に答える 2

1

同じ変換演算子を定義する方法を次に示しますが、静的メソッドとして定義します。これは、マネージド ランドではより標準的であると考えられています。

static operator PIXELFORMATDESCRIPTOR* (PixelFormatDescriptor ^p)
{
    return p->m_pfd;
}

そして、構文を文書化したページは次のとおりです。

http://msdn.microsoft.com/en-US/library/vstudio/047b2c75.aspx

于 2013-06-04T21:03:01.793 に答える