аргумент типа «WCHAR **» несовместим с параметром типа «const wchar_t *»

#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. И все из-за отсутствия кровавого *. Огромное спасибо. Я нахожусь на стадии того, чтобы просто заставить эту штуку работать, затем я пройду через нее и приведу ее в порядок/оптимизирую. Еще раз спасибо 🙂