#c #networking #adapter
Вопрос:
Я пытаюсь создать программу использования сети, которая показывает текущую скорость передачи данных адаптера. У меня все это работает внутри main, но теперь я хочу перенести это в функцию, которую я могу вызвать. Я заранее приношу извинения, я n00b, и это, вероятно, основной вопрос, но когда я перемещаю весь код в функцию и компилирую, я получаю следующее сообщение об ошибке:
аргумент типа «WCHAR **» несовместим с параметром типа «const wchar_t *»
(Мой код здесь: https://pastebin.com/h7S9e1Zk Это сильно измененная версия примера, который я нашел).
long long test(WCHAR** args) {
std::cout << "running:" << args << ":End" << "n";
// Declare and initialize variables
ULONG retVal1 = 0;
ULONG retVal2 = 0;
ULONG ifIndex1;
ULONG ifIndex2;
MIB_IF_ROW2 ifRow1;
MIB_IF_ROW2 ifRow2;
// Make sure the ifRow is zeroed out
SecureZeroMemory((PVOID)amp;ifRow1, sizeof(MIB_IF_ROW2));
// Zero out the MIB_IF_ROW2 struct
ifIndex1 = _wtoi(args);
ifRow1.InterfaceIndex = ifIndex1;
retVal1 = GetIfEntry2(amp;ifRow1);
long long oct1 = PrintIfEntry2(amp;ifRow1);
Sleep(1000);
// Make sure the ifRow is zeroed out
SecureZeroMemory((PVOID)amp;ifRow2, sizeof(MIB_IF_ROW2));
ifIndex2 = _wtoi(args);
ifRow2.InterfaceIndex = ifIndex2;
retVal2 = GetIfEntry2(amp;ifRow2);
long long oct2 = PrintIfEntry2(amp;ifRow2);
long long rise = (oct2 - oct1) * 8;
//rise = rise / 1000 / 1000;
return rise;
}
Он специально ссылается на этот фрагмент кода:
ifIndex1 = _wtoi(аргументы);
Я предполагаю, что мои слепки перепутались, но, хоть убей, я не вижу, где я ошибся.
Есть какие-нибудь советы?
Комментарии:
1. Почему вы сделали параметр функции a
WCHAR**
, а неWCHAR*
? Вы делаете_wtoi(args)
это дважды, как будто ожидаете другого результата во второй раз — вы намеревались передатьargv
этой функции только часть массива (ваше приведение там совершенно неверно)?2. И все из-за отсутствия кровавого *. Огромное спасибо. Я нахожусь на стадии того, чтобы просто заставить эту штуку работать, затем я пройду через нее и приведу ее в порядок/оптимизирую. Еще раз спасибо 🙂