'delegate' : invalid second argument for Delegate constructor; needs to be an lvalue
The second parameter of the delegate’s constructor takes either the address of a member function or the address of a static member function of any class. Both are treated as simple addresses.
The following sample generates C3364:
#using <mscorlib.dll> __delegate int D(int, int); __gc class C { public: int mf(int, int) { return 1; } }; void main() { C *pC = new C; System::Delegate *pD = new D(pC, pC->mf(1, 2)); // C3364 // try the following line instead // System::Delegate *pD = new D(pC, &C::mf); }