#include <Bthsdpdef.h>
#include <BluetoothAPIs.h>
#include <Winsock2.h>
#include <Ws2bth.h>
#include <stdio.h>
#pragma comment(lib, "Bthprops.lib")
int main(void){
WSADATA wsaData;
int err;
DWORD qs_len;
WSAQUERYSET *qs;
DWORD flags;
HANDLE lphLookup;
int iRet;
char buff[4096];
LPWSAQUERYSET pwsaResult = (LPWSAQUERYSET) buff;
DWORD buffLen = sizeof(buff);
BTH_ADDR result;
WORD wVersionRquested = MAKEWORD(2,2);
err = WSAStartup(wVersionRquested, &wsaData); //Statrup function
if(err != 0){
printf("WSAStartup failed");
return 1;
}
qs_len = sizeof(WSAQUERYSET);
qs = (WSAQUERYSET *) malloc(qs_len); // Save memory for WSAQUERYSET structere
ZeroMemory(qs, qs_len); //zero WSAQUERYSET out
qs->dwSize = sizeof(WSAQUERYSET);
qs->dwNameSpace = NS_BTH;
qs->lpcsaBuffer = NULL;
flags = LUP_CONTAINERS | LUP_FLUSHCACHE | LUP_RETURN_NAME | LUP_RETURN_ADDR; //details of the device discovery
iRet = WSALookupServiceBegin(qs, flags, &lphLookup);
if(iRet == ERROR_SUCCESS){
printf("WSALookupServiceBegin failed");
return 1;
}
printf("\r\n\t\t\t\tScanning...");
ZeroMemory(pwsaResult, sizeof(LPWSAQUERYSET));
pwsaResult->dwSize = sizeof(WSAQUERYSET);
pwsaResult->dwNameSpace = NS_BTH;
pwsaResult->lpBlob = NULL;
while(WSALookupServiceNext(lphLookup, flags, &buffLen, pwsaResult) != ERROR_SUCCESS){
result = ((BTH_ADDR)qs->lpcsaBuffer->RemoteAddr.lpSockaddr);
WSAAddressToString(qs->lpcsaBuffer->RemoteAddr.lpSockaddr, sizeof(SOCKADDR_BTH), NULL, (LPWSTR)buff, &buffLen);
printf("Found: %s - %s", buff, qs->lpszServiceInstanceName);
}
WSALookupServiceEnd(lphLookup);
free(qs);
WSACleanup();
return 0;
}
Microsoft sdk フォルダーにある bthsdpdef.h で、多くの構文エラーと欠落型エラーが発生しました。そのような:
bthsdpdef.h(11): エラー C2146: 構文エラー: ';' がありません 識別子「LowPart」の前に、
bthsdpdef.h(11): エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int をサポートしていません
どうしたの?