函数指针作为参数的问题
在EVC4.0下开发wince5.0的应用程序。
在网上下载了一份资料,提供了一个lib一个dll,还有一个头文件BlueToothCtrl.h。
在头文件BlueToothCtrl.h里面有如下定义:
①typedef struct _RemoteBthDevInfo
{
_RemoteBthDevInfo ()
{
memset ( szName, 0, sizeof(szName) );
memset ( &RemoteAddr, 0, sizeof(BT_ADDR) );
memset ( &LocalAddr, 0, sizeof(BT_ADDR) );
}
TCHAR szName[256]; //蓝牙设备名称;
BT_ADDR RemoteAddr; //蓝牙设备远程地址;
BT_ADDR LocalAddr;
TCHAR ServiceClassId[72];
} RemoteBthDevInfo;
②typedef void (__stdcall *SELECT_DEVICE)(RemoteBthDevInfo* devInfoArray, int arrayLen, __int64* devRemoteAddr);
③SOCKET __stdcall ConnectDevice(SELECT_DEVICE pSelectDeviceFunc,LPWSTR lpPassword=L"0000",LPWSTR devNameFilter=GOLDTEL_DEVICE_NAME_FLAG);
其中:
①是定义了一个结构体。
②是定义了一个函数指针类型。
③是一个连接蓝牙设备的函数。
现在的问题是:在我的cpp里面如何调用③地方法ConnectDevice。
我是这样做的:
第一步:在mycpp.cpp的顶部添加引用#include” BlueToothCtrl.h”
第二部:在mycpp.cpp中定义一个全局函数 void fTest(RemoteBthDevInfo* devInfoArray, int arrayLen, __int64* devRemoteAddr)
第三部:在myMethod()方法中代码如下:
RemoteBthDevInfo m_Rb;
SELECT_DEVICE fSD;
fSD = fTest;
问题来了:ConnectDevice函数如何调用?
我试了ConnectDevice(fSD, L"0000", GOLDTEL_DEVICE_NAME_FLAG);
和 ConnectDevice(fSD(&m_Rb, 5, NULL), L"0000", GOLDTEL_DEVICE_NAME_FLAG);
都有问题。
请教各位高手,这个ConnectDevice函数应该怎么写呀? SELECT_DEVICE的参数如何传进去呢?