如何在 Qt 中使用 Windows 网络 API?

发布于 2024-10-17 02:26:07 字数 437 浏览 4 评论 0 原文

我将在 GUI 应用程序中放置一个网络状态图标。为了获取网络状态通知,我尝试使用 Windows API。为此,我正在考虑在我的应用程序中使用 NetworkAvailabilityChangedEventHandler 。我对使用 Windows API 和框架进行编程非常陌生。任何人都可以帮助我解决以下问题:

  1. API NetworkAvailabilityChangedEventHandle 只能在 C# 中使用吗?
  2. 我可以在 C++ (Qt) 中使用它吗?
  3. 我必须包含哪个头文件? (我为此检查了 MSDN。但他们为此使用命名空间。所有示例都是 C# 语言。我无法理解如何在我的 C++ 代码中实现它。)

如果有人能给我详细的说明,我将不胜感激使用此 Windows 事件处理程序的代码片段,包括要包含的 .h 文件或命名空间。

I am going to put an network status icon in my GUI application. To get the network status notification, I am trying to use the Windows API. For this I am thinking to use NetworkAvailabilityChangedEventHandler in my application. I am very new to programming with the Windows API and framework. Can anybody help me in the following things:

  1. Can the API NetworkAvailabilityChangedEventHandle only be used in C#?
  2. Can I use it in C++ (Qt)?
  3. Which header file must I include? (I checked in MSDN for this. but they are using namespace for this. All the examples are in C#. I am not able to understand how to implement it in my C++ code.)

I will be grateful if somebody can give me a detailed code snippet for using this windows event handler, including the .h file or namespace to be included.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随心而道 2024-10-24 02:26:07

您从哪里想到使用 NetworkAvailabilityChangedEventHandler 委托的想法?

这显然不是 Windows API 的一部分,而是 .NET Framework 与 NetworkChange.NetworkAvailabilityChanged 事件。这就解释了为什么 MSDN 上的所有示例都是用 C# 编写的,因为它仅适用于面向 .NET Framework 的应用程序。如果您使用 Qt 编写非托管 C++,那么您就没有使用 .NET Framework,并且无法利用其功能。

等效的 Windows API 是 InternetGetConnectedState 函数 ,它返回一个值,指示系统当前是否连接到互联网。您会发现它的 MSDN 文档对于非托管 C++ 开发人员来说更加友好,因为这就是
主要目标受众。您要查找的信息在底部给出:

标题         Wininet.h

          Wininet.lib

DLL              
Wininet.dll

您可以在此处找到所有 WinINet 函数的列表。

Where did you get the idea to use the NetworkAvailabilityChangedEventHandler delegate?

That is explicitly not part of the Windows API, but rather a delegate function used by the .NET Framework in conjunction with the NetworkChange.NetworkAvailabilityChanged event. That explains why all the examples on MSDN are in C#—because this is only intended to be used in applications targeting the .NET Framework. If you're writing unmanaged C++ using Qt, then you're not using the .NET Framework, and you can't take advantage of its functionality.

The Windows API equivalent is the InternetGetConnectedState function, which returns a value indicating whether or not the system is currently connected to the Internet. You'll find that its MSDN documentation is substantially friendlier towards unmanaged C++ developers, because that's the
primary intended audience. The information that you're seeking is given at the bottom:

Header          Wininet.h

Library           Wininet.lib

DLL                
Wininet.dll

You can find a list of all the WinINet functions here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文