110,533
社区成员
发帖
与我相关
我的任务
分享
typedef struct tagRVD
{
void (*control_cmd) (int sn, unsigned char* data, int length);
void (*bin_msg) (unsigned char* data, int length);
void (*async_callback) (int sn, int result);
} RVD_t;
RVD_Export int init_rvd (RVD_t* rvd,int id);
RVD_Export void close_rvd (RVD_t* rvd);
RVD_Export int req_cmd (int sn,const char* json);
RVD_Export int _cmd (int sn,const char* json);
public delegate void ControlCmd(int sn, byte data, int length);
public delegate void BinMsg(StringBuilder data, int length);
public delegate void AsyncCallback(int sn, int result);
public struct RVD_t
{
private IntPtr control_cmd;
private IntPtr bin_msg;
private IntPtr async_callback;
public ControlCmd ControlCmd { get { return Marshal.GetDelegateForFunctionPointer(control_cmd, typeof(ControlCmd)) as ControlCmd; } }
public BinMsg BinMsg { get { return Marshal.GetDelegateForFunctionPointer(bin_msg, typeof(BinMsg)) as BinMsg; } }
public AsyncCallback AsyncCallback { get { return Marshal.GetDelegateForFunctionPointer(async_callback, typeof(AsyncCallback)) as AsyncCallback; } }
}
[DllImport("<dllname>.dll")]
private static extern int init_rvd(ref RVD_t rvd, int id);
[DllImport("<dllname>.dll")]
private static extern void close_rvd(ref RVD_t rvd);
[DllImport("<dllname>.dll")]
private static extern int req_cmd(int sn, string json);
[DllImport("<dllname>.dll")]
private static extern int _cmd(int sn, string json);