按照之前对C++函数指针的理解,C++函数指针为内存地址,可以用int或者intptr_t保存地址信息,在需要调用时候再转换成相应的函数指针。委托作为C#的指针实现形式,那么理论上可以用C#的IntPtr类型接C++返回的intptr_t地址后在转换为C#的委托对象。然后通过委托对象执行函数调用。理论上也可以把C#的函数转换成IntPtr传递给C++,C++得到intptr_t后把地址转换成相应的函数指针执行函数调用。
首先实现C++的dll库代码
提供的申明头
实现
C#调用方面
封装的工具类