私はWindowsでwlanapiをいじっています。関数WlanScanを使用してみるまで、コンパイルや実行に問題はありませんでした。その後、「WlanScan」がスコープで宣言されていないため、コンパイルできませんでした。これを示す非常に短いプログラムを 2 つの関数 (機能するWlanOpenHandleと機能しないWlanScan ) を使用して作成しました。
#include <windows.h>
#include <wlanapi.h>
int main()
{
HANDLE hClient;
WlanOpenHandle(2, 0, 0, &hClient);
WlanScan(hClient, 0, 0, 0, 0);
}
その単一のファイルを次のようにコンパイルします。
g++ main.cpp -lwlanapi
次のエラーが発生します。
main.cpp: In function 'int main()':
main.cpp:9:30: error: 'WlanScan' was not declared in this scope
WlanScan(hClient, 0, 0, 0, 0);
^
これの原因は何ですか?wlanapi のいくつかの関数を使用できました。私はminGWでコンパイルしているWindows 7を使用しています。
編集: u/ IInspectable の発言に従って、コンパイルに使用するコマンドを次のように変更しました。
g++ -D_WIN32_WINNT=_WIN32_WINNT_WIN7 main.cpp -lwlanapi
そしてそれは働いた!