我需要用C包装一个C++库。这个C++库定义回调函数。例如:
// from C++ library
typedef X CallbackFn(Y y); // X and Y are classes
class Z
{
public:
void addCallback( CallbackFn* fn ) { callbackFn = fn; }
private:
CallbackFn* callbackFn;
};
在C包装器中,我可以定义新的C回调,它调用C++回调。如下所示:
我希望创建一个C#程序,该程序调用托管C++ dll,然后在本机C++ dll中执行功能。作为此调用的一部分,我希望提供一个可由本机C# dll调用的C++回调函数。
C#代码将调用一些托管C++代码,这将调用以下原生C++代码;我希望本机C++代码调用my C#回调cb
int dobatch(CString str)
{
// I want to to call c#
if (cb)
return(cb(str)); // this would execute the function passed from c#.
}
任何想法.我似乎不能让C#回调与通过
我想知道callback functions实际使用的地方?
有没有办法在C/C++中实现回调函数(而不是使用函数指针)?
请解释一下下面这行-
"A callback can be used as a simpler alternative to polymorphism and generic programming“
谢谢