|
各位好!
小弟现在刚开始wince4.2 (evc4 SP4 + ppc2003 arm4)下在做篮牙开发(主要实现pda查找篮牙模块,然后连接再从篮牙模块接收模块的数据,并显示曲线),以前没有做过,不熟悉。有一些问题想请教大家。困惑了好几天了。
我用mfc application方式写查找设备的程序,引用的是winsock2.h用到WSALookupServiceBegin之类的函数编译提示连接错误: ……
error LNK2019: unresolved external symbol WSALookupServiceBeginW referenced in function "public: int __cdecl BlueTooth::SearchDevice(void)" (?SearchDevice@BlueTooth@@QAAHXZ)
……
引用#pragma comment(lib,"ws2_32.lib")后说是找不到ws2_32.lib,,可是我明明已经加到lib里去了啊。没有办法,改用#pragma comment(lib,"ws2.lib")后编译能够过,可是在pda上跑时提示错误 WSANOTINITIALISED 10093 (Successful WSAStartup not yet performed)。是不是我的lib版本有问题还是在mfc方式下不能用ws2_32.lib啊 请各位帮我看一下是怎么回事啊。有哪位好心人能不能把对应的lib(ws2_32.lib、ws2bth.h、ws2bth.h、BluetoothAPIs.h、Irprops.lib,我知道基本上都是在5.0下用的不知道4.2可不可以)发到我的邮箱里啊谢谢了。后来又改为application下。同样使用这些函数但是没有引用 ws2_32.lib和ws2.lib设备反而能找到了,不知道为什么。
在需要连接配对。看可以用到bthauthenticate,但是这需要Btdrt.lib。我下了一个试了,Btdrt.lib也引用了#pragma comment(lib,"Btdrt.lib"),Btdrt.lib 不知道为什么。
现在篮牙模块是无法手工输入配对码的,看到在连接时还需要知道连接的channel或者是port的相关信息,请大家指点一下啊。
最后一个问题就是我使用:
int PopulateBtDevCONN(HWND hDlg )
{
……
---- int deviceIndex = ((CListBox *) GetDlgItem(hDlg, IDC_DEVLIST))->GetCurSel();
RemoteBthDevInfo = Ary_RemoteBthDevInfo.GetAt(deviceIndex);
……
}
跑到---- 后看到(CListBox *) GetDlgItem(hDlg, IDC_DEVLIST)的deviceIndex的hwnd居然是????,报错说时first chance exception in **.exe Access Violation。可是前面的程序在
SendMessage(GetDlgItem(hDlg, IDC_DEVLIST),
LB_ADDSTRING,
0,
(LPARAM)pwsaResults->lpszServiceInstanceName);
时已经显示设备的名称了。从句柄获取窗口对象应该可以啊。怎么会这样啊。
请大家指点一下 谢谢各位了。
|
|