2009-06-17 17 views
1

どのようにですか?C++/CLIでデリゲートを宣言するにはどうすればよいですか?

以下は動作しませんでした:宣言について次の作品

delegate MyDelegate; 
ref class MyDelegate; 
delegate void MyDelegate; 

を:

public delegate void MyDelegate(Object ^sender, MyArgs ^args); 

しかし、前方宣言としてそれを使用して私のためにこの仕事の私に

error C3756: 'MyNameSpace::MyDelegate': delegate definition conflicts with an existing symbol 
+0

1つの提案は、MyArgsを宣言することでしたが、それでも助けにはなりませんでした。誰かが助けてくれますか? –

答えて

1

を与えます;

stdafx.hを:

public delegate void Handler(bool isit); 

がcli1.cpp:私はほとんどの部分だけではデフォルトVS 2010 C++/CLIのプロジェクトを残し

#include "stdafx.h" 
using namespace System; 

namespace MY { 
    namespace Namespace 
    { 
     public ref class Objeks 
     { 
      public: Objeks() {} 
      public: event Handler^ OnHandler; 
      public: void __clrcall Runner(bool checkit) 
      { 
       if(&Objeks::OnHandler != nullptr) 
       OnHandler(checkit); 
      } 
     }; 
    } 
} 

、私があれば、あなたが経由することを期待します前方宣言の問題、名前空間システムの使用。見出しにも入ります:)

多分あなたはイベントを使いたくないのですか?しかし、それは単純に構造のようです。

Error Compiling C++/CLI Delegate call using Predicate with Array::FindAll())を考慮してエラーチェックを追加しました。

関連する問題