次の方法で共有


コンパイラ エラー C3364

'delegate': delegate コンストラクター: 引数は、マネージド クラスのメンバー関数またはグローバル関数へのポインターである必要があります

デリゲートのコンストラクターの 2 番目のパラメーターは、メンバー関数のアドレスまたは任意のクラスの静的メンバー関数のアドレスのいずれかを取ります。 どちらも単純なアドレスとして扱われます。

次の例では C3364 が生成されます。

// C3364_2.cpp
// compile with: /clr

delegate int D( int, int );

ref class C {
public:
   int mf( int, int ) {
      return 1;
   }
};

int main() {
   C^ pC = gcnew C;
   System::Delegate^ pD = gcnew D( pC,pC->mf( 1, 2 ) ); // C3364

   // try the following line instead
   // System::Delegate^ pD = gcnew D(pC, &C::mf);
}