Как использовать Windows Network API в Qt? - PullRequest
1 голос
/ 09 февраля 2011

Я собираюсь поместить значок состояния сети в мое приложение с графическим интерфейсом. Чтобы получить уведомление о состоянии сети, я пытаюсь использовать Windows API. Для этого я думаю использовать NetworkAvailabilityChangedEventHandler в моем приложении. Я очень новичок в программировании с помощью Windows API и фреймворка. Кто-нибудь может мне помочь в следующих вещах:

  1. Может ли API NetworkAvailabilityChangedEventHandle использоваться только в C #?
  2. Могу ли я использовать его в C ++ (Qt)?
  3. Какой заголовочный файл я должен включить? (Я проверил в MSDN для этого. Но они используют пространство имен для этого. Все примеры в C #. Я не могу понять, как реализовать это в моем коде C ++.)

Буду признателен, если кто-нибудь даст мне подробный фрагмент кода для использования этого обработчика событий Windows, включая файл .h или пространство имен, которое будет включено.

1 Ответ

4 голосов
/ 09 февраля 2011

Откуда у вас появилась идея использовать делегат NetworkAvailabilityChangedEventHandler?

Это явно не часть API Windows, а скорее функция делегата, используемая .NET Framework в сочетании с NetworkChange.NetworkAvailabilityChanged событием . Это объясняет, почему все примеры в MSDN представлены на C #, поскольку предназначены только для приложений, нацеленных на .NET Framework. Если вы пишете неуправляемый C ++ с использованием Qt, значит, вы не используете .NET Framework и не можете воспользоваться его функциональностью.


Эквивалентом Windows API является InternetGetConnectedState функция , которая возвращает значение, указывающее, подключена ли система в настоящее время к Интернету. Вы обнаружите, что его документация MSDN значительно удобнее для неуправляемых разработчиков C ++, потому что это
основная целевая аудитория. Информация, которую вы ищете, указана внизу:

Заголовок Wininet.h

Библиотека Wininet.lib

DLL Wininet.dll

Вы можете найти список всех функций WinINet здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...