在C#中使用DllImport来调用C/C++编写的DLL时,可以通过委托来定义回调函数,并将其作为参数传递给DLL中的函数。以下是一个简单的示例:
首先,在C#中定义一个委托来表示回调函数:
delegate void CallbackDelegate(int value); 然后,通过DllImport导入DLL中的函数,并将委托作为参数传递:
class Program { [DllImport("yourDLL.dll")] public static extern void RegisterCallback(CallbackDelegate callback); static void Main(string[] args) { CallbackDelegate callback = new CallbackDelegate(CallbackFunction); RegisterCallback(callback); } static void CallbackFunction(int value) { Console.WriteLine("Callback called with value: " + value); } } 在上面的示例中,首先定义了一个委托CallbackDelegate,然后在Main方法中创建一个委托实例callback,并将其传递给RegisterCallback函数。在RegisterCallback函数中,DLL会调用传入的委托实例来执行回调函数。
需要注意的是,确保在DLL中正确实现了回调函数的调用,以及委托的生存期和调用线程等问题。