Я пытаюсь написать некоторый код WinAPI в C, который использует собственный API WiFi. На данный момент я застрял в самом начале, открыв ручку WiFi.Почему WlanOpenHandle() не работает здесь?
Вот код, я в настоящее время с помощью:
#include <stdio.h>
#include <Windows.h>
#include <wlanapi.h>
#pragma comment(lib, "Wlanapi.lib")
int main(int argc, char* argv[]) {
HANDLE *wh = NULL;
unsigned long nv;
int rc;
if ((rc = WlanOpenHandle(1, NULL, &nv, wh)) != ERROR_SUCCESS) {
printf("WlanOpenHandle(): ");
switch (rc) {
case ERROR_INVALID_PARAMETER:
printf("Invalid param.\n");
break;
default:
printf("Unknown error.\n");
}
goto cleanup;
}
cleanup:
WlanCloseHandle(wh, NULL);
getchar();
return 0;
}
Этот код выводит "WlanOpenHandle():. Invalid парам".
Зачем это делается? Из документации API, похоже, я все правильно передаю. Я также пробовал 2
в качестве первого параметра для WlanOpenHandle()
.
(Обратите внимание, что это не мой полный код, но этот фрагмент был испытан выставляться упомянутый вопрос. В реальном коде, есть больше случаев в коммутаторе, и есть больше кода под этим goto
s к cleanup
.)
прямо из [документации] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms706759%28v=vs.85%29.aspx): ' ERROR_INVALID_PARAMETER - pdwNegotiatedVersion - NULL, phClientHandle - NULL, или pReserved - не NULL. ' –
Спасибо, я не знаю, как я забыл, что я там делаю. – AppleDash
@RetiredNinja Теперь я чувствую себя глупо, я был на этой точной странице, и мне просто не удалось прочитать эту часть документации. – AppleDash