2009-06-17 2 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

Одно из предложений заключалось в том, чтобы направить объявление MyArgs, но даже это не помогло. Может ли кто-нибудь помочь? –

ответ

1

Эта работа для меня ;

stdafx.h:

public delegate void Handler(bool isit); 

cli1.cpp:

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

я оставил по умолчанию VS 2010 проект C++/CLI в одиночку, по большей части, я бы ожидать, что если ваш будет через проблема форвардных деклараций, использование системы пространств имен; тоже попал бы в заголовок :)

Возможно, вы не хотели использовать мероприятие? Но это просто структура.

Я добавил ошибку после рассмотрения (Error Compiling C++/CLI Delegate call using Predicate with Array::FindAll()).