c++代码转换C#代码
typedef struct _BtSdkCallbackStru
{
unsigned short type;/*type of callback*/
void *func;/*callback function*/
}BtSdkCallbackStru, *PBtSdkCallbackStru;
上面是结构体
函数调用部分如下:
BtSdkCallbackStru cb = {0};
cb.type = 0x04;
cb.func = (void*)AppInquiryInd;
Btsdk_RegisterCallback4ThirdParty(&cb);
Btsdk_RegisterCallback4ThirdParty是注册函数
回调函数AppInquiryInd如下:
void AppInquiryInd(unsigned long dev_hdl)
{
unsigned long dev_class = 0;
Btsdk_GetRemoteDeviceClass(dev_hdl, &dev_class);
if ( (s_rmt_dev_cls == 0)||(s_rmt_dev_cls == (dev_class & 0x1ffc)))
{
s_rmt_dev_hdls[s_rmt_dev_num++] = dev_hdl;
}
}
以上的代码转换成C#,该怎么处理,谢谢各位!
[解决办法]
就是注册一个回调嘛
C#对应的BtSdkCallbackStru如下。
看情况参数uint也可能是ulong.只是不知道你原来的代码对应的unsigned long是多少位的.
public delegate void CallBackFuncType(uint);//
[StructLayout(LayoutKind.Sequential)]
struct BtSdkCallbackStru
{
ushort type;
CallBackFuncType func;
}