crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> проблема с GetNetworkParams
crazymonkey
  опции профиля:
сообщение 15.8.2011, 15:09
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 26
Регистрация: 23.6.2011
Пользователь №: 2764

Спасибо сказали: 2 раз(а)




Репутация:   0  


Добрый день.
Суть проблемы.
Код в Visual Studio
   DWORD Err;
    DWORD FixedInfoSize = 0;

    //
    // Get the main IP configuration information for this machine using a FIXED_INFO structure
    //

if ((Err = GetNetworkParams(NULL, &FixedInfoSize)) != 0)
    {
        if (Err != ERROR_BUFFER_OVERFLOW)
        {
            printf("GetNetworkParams sizing failed with error %d\n", Err);
            return;
        }
    }
    printf("Hi %d\n", Err);

И так далее исходники ipconfig

Вывод: Hi 111
Выполняется без проблем.

Код в QtCreator
DWORD FixedInfoSize = 0;
    DWORD Err;

    qDebug() << "!!";

    //
    // Get the main IP configuration information for this machine using a FIXED_INFO structure
    //
    if ((Err = GetNetworkParams(NULL, &FixedInfoSize)) != 0)
        {
        if (Err != ERROR_BUFFER_OVERFLOW)
        {
            qDebug() << "GetNetworkParams sizing failed with error" <<  Err;
        }
        }

    qDebug() << "hey";

Вывод: !!

Вылетает с сообщением что работа программы остановлена

Есть ли у вас мнения почему так может быть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.8.2011, 16:11
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(crazymonkey @ 15.8.2011, 18:09) *
Код в Visual Studio
А в этом коде кроме qDebug какая часть имеет отношение к Qt?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ssoft
  опции профиля:
сообщение 15.8.2011, 16:11
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 17.2.2010
Из: Москва
Пользователь №: 1470

Спасибо сказали: 30 раз(а)




Репутация:   3  


Сигнатура метода

DWORD GetNetworkParams(
  __out  PFIXED_INFO pFixedInfo,
  __in   PULONG pOutBufLen
);


Необходимо передавать в качестве первого параметра не NULL, а указатель на структуру FIXED_INFO.

Вызываемая реализация Visual Studio и QtCreator (gcc) может быть разная. Вероятно, во втором случае нет проверки на NULL.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 2:47