【问题标题】:How to check for internet availability in c++ [closed]如何在 C++ 中检查互联网可用性 [关闭]
【发布时间】:2013-01-04 05:52:11
【问题描述】:

我写了一个小函数来检查互联网连接的可用性

void cis()
{
    if(InternetCheckConnection(NULL,FLAG_ICC_FORCE_CONNECTION,0))
    {
        cout << "internet alive";
    }
}

我将WinInet.h 用于InternetCheckConnection()。现在的问题是我收到以下链接器错误:

[Linker error] undefined reference to `_imp__InternetCheckConnectionA@12'

我正在为我的项目使用 DevC++。有关如何解决此链接器问题的任何想法或任何其他检查活动互联网连接的想法?

【问题讨论】:

  • 你可能需要链接一些库。
  • 您是否检查了 [documentation[)msdn.microsoft.com/en-us/library/windows/desktop/…) 以了解您正在调用的函数? “要求”部分列出了这条小信息:Library: Wininet.lib。顺便说一句,恭喜您找到了最糟糕、最多错误和最过时的 IDE。最终使用 Dev-C++ 怎么可能可能?那东西是古老的,即使不是,它糟透了
  • 请原谅,您的帖子一团糟。即使您不是以英语为母语的人,至少应该可以正确格式化您的源代码,以大写开头的句子并使用句号结束​​它们。
  • 查看是否添加了对 WinInet.dll 的引用
  • @jalf 我使用了整体 dev c++,它现在更新了....还有任何其他好的 IDE 你想建议:) 但不建议 microsfot studio :D

标签: c++ c wininet


【解决方案1】:

这是一个链接器错误。根据您需要使用wininet 库的文档。在 makefile 中添加 -lwininet 可能会起作用。

【讨论】:

  • 谢谢 :) -lwininet 成功了
  • @darkworks:您可以通过单击左侧的白色复选标记将答案标记为已接受。
  • 是的,我会接受,但说等一下……分钟:D
  • 强制等待的原因是,如果稍等片刻,您经常会得到多个答案,然后您可以接受其中最好的一个。而如果您立即接受答案,这通常会阻止其他人回答,因此总体上您可能会得到较差的答案。
  • 在 Visual Studio 2013 中在哪里添加 -lwininet 选项?
【解决方案2】:

它找到了您的标题,但是您需要链接到库。尝试将 Wininet.lib 添加到您的项目中(尝试作为文件或在链接器属性中)并确保 Windows SDK 已正确安装在您的系统上。

【讨论】:

    【解决方案3】:

    unix

        if (system("ping www.google.com -c 2 > /dev/nul") == 0) {
        cout << "all good" << endl;
    }else{
        cout << "bad" << endl;
    }
    

    窗户

        if (system("ping www.google.com -t 2 > nul") == 0) {
        cout << "all good" << endl;
    }else{
        cout << "bad" << endl;
    }
    

    【讨论】:

    • 是的,但有些 isp 阻止了 ping 命令,比如在学校你无法 ping google.com
    • 真;很高兴你找到了解决方案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多