如何?
以下不起作用:
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)
这项工作适合我;
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())后添加了错误检查。