如何通过C#方法作为对CLI / C ++函数的回调? [英] How to pass C# method as a callback to CLI/C++ function?
本文介绍了如何通过C#方法作为对CLI / C ++函数的回调?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在C ++ / CLI中有这样的方法:
I have such method in C++/CLI:
void Foo(OnEngineCloseCallback callback);
具有这样的回调定义:
typedef void (*OnEngineCloseCallback)( int, String ^ errorMessage);
C ++ / CLI编译。 C#代码如下所示:
The C++/CLI compiles. The C# code looks like this:
static void onCallback( int code, String errorMessage)
{
System.Diagnostics.Debug.WriteLine(errorMessage);
}
并致电:
Foo(onCallback); // error
该语言不支持Foo(错误:CS0570)。
"Foo is not supported by the language" (error: CS0570).
那么如何将回调传递给CLI / C ++?
So how can I pass my callback to CLI/C++?
推荐答案
如果你们俩都不打算发布答案,我会这样做,因为我不喜欢没有答案的已回答问题...
您必须声明一个公共委托,而不是一个函数指针。基本的操作方法文章在这里。由Hans Passant提供的
You must declare a public delegate, not a function pointer. Basic how-to article is here. by Hans Passant
这篇关于如何通过C#方法作为对CLI / C ++函数的回调?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文