c++/cx - Error: a delegate type is not allowed here
c++/cx - Error: a delegate type is not allowed here
我需要在 c++/cx 中捕获一个 lambda 表达式并将其作为参数传递给 public ref class MyClass sealed
组件 class。我尝试使用 std::function
,但编译器抱怨 signature of public member contains native type 'std::func...
一直在看啊看,public delegate void MyCallback(byte, byte, byte *)
貌似可以代替typedef std::function<void(byte, byte, byte *)> MyCallback;
我试过用它作为参数:
void
attach (
byte cmd_,
MyCallback cb_
);
但是,Intellisense 给我错误:"Error: a delegate type is not allowed here".
我不明白...你应该如何传递函数,它看起来像什么?
如果您的 MyCallback 类型是托管委托,那么您必须指定您正在接受该类型的托管引用:
void
attach (
byte cmd_,
MyCallback^ cb_
);
注意 ^
符号。没有这个标志你会看到一个奇怪的错误:a delegate type is not allowed here
。这个符号的字面意思是 a managed reference of type ...
.
我需要在 c++/cx 中捕获一个 lambda 表达式并将其作为参数传递给 public ref class MyClass sealed
组件 class。我尝试使用 std::function
,但编译器抱怨 signature of public member contains native type 'std::func...
一直在看啊看,public delegate void MyCallback(byte, byte, byte *)
貌似可以代替typedef std::function<void(byte, byte, byte *)> MyCallback;
我试过用它作为参数:
void
attach (
byte cmd_,
MyCallback cb_
);
但是,Intellisense 给我错误:"Error: a delegate type is not allowed here".
我不明白...你应该如何传递函数,它看起来像什么?
如果您的 MyCallback 类型是托管委托,那么您必须指定您正在接受该类型的托管引用:
void
attach (
byte cmd_,
MyCallback^ cb_
);
注意 ^
符号。没有这个标志你会看到一个奇怪的错误:a delegate type is not allowed here
。这个符号的字面意思是 a managed reference of type ...
.