LNK2019:错误。使用 InternetOpen InternetReadFIle 的 C++ 程序中未解析的外部符号

Posted

技术标签:

【中文标题】LNK2019:错误。使用 InternetOpen InternetReadFIle 的 C++ 程序中未解析的外部符号【英文标题】:LNK2019: Error. unresolved external symbol in C++ program using InternetOpen InternetReadFIle 【发布时间】:2010-10-18 02:24:08 【问题描述】:

我尝试编写一个简单的程序来从网站获取信息。我无法编译,因为我收到 InternetReadFile、InternetOpenUrl 等的 LNK2019 错误,例如

1>GetInternetInfo.obj:错误 LNK2019:无法解析的外部符号 _imp_InternetReadFile@16 在函数 _main

中引用

我假设这意味着我没有定义这些函数,我没有包含正确的库。我认为包括 #include 会解决它,但它似乎没有帮助。我正在使用 C++ 在 Visual Studio 2010 上运行它。下面是我的程序。任何帮助表示赞赏。

#include <string>
#include <iostream>
#include <fstream>
#include <windows.h>
#include <wininet.h>
#include <winsock.h>
#include <stdio.h>
#include <stdarg.h>

using namespace std;

int main()      

HINTERNET hOpen, hURL;
LPCWSTR NameProgram = L"Webreader";             //      LPCWSTR == Long Pointer to Const Wide String 
LPCWSTR Website;                    
char file[101];
unsigned long read;

//Always need to establish the internet connection with this funcion.  
  if ( !(hOpen = InternetOpen(NameProgram, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 )))
    
    cerr << "Error in opening internet" << endl;
    return 0;
                           
Website = L"http://www.google.com";
hURL = InternetOpenUrl( hOpen, Website, NULL, 0, 0, 0 );            //Need to open the URL


InternetReadFile(hURL, file, 100, &read);
while (read == 100)
    
    InternetReadFile(hURL, file, 100, &read);
    file[read] = '\0';
    cout << file;
    

cout << endl;
InternetCloseHandle(hURL);
return 0;

【问题讨论】:

【参考方案1】:

请在您的项目设置中包含“Wininet.lib”。

项目->属性->配置属性->链接器->输入->附加依赖

【讨论】:

【参考方案2】:

您也可以在包含部分之后将此行添加到代码中,而不是将库添加到属性中:

#pragma comment(lib, "wininet.lib")

【讨论】:

【参考方案3】:

你链接到wininet.lib了吗?

http://msdn.microsoft.com/en-us/library/aa385103(VS.85).aspx

【讨论】:

以上是关于LNK2019:错误。使用 InternetOpen InternetReadFIle 的 C++ 程序中未解析的外部符号的主要内容,如果未能解决你的问题,请参考以下文章

“错误 LNK2019:未解决...”

无法使用命令行链接库(错误 LNK2019)

使用 qt creator 和 eigen 库编译程序时出现 lnk2019 错误

C++ LNK1120 和 LNK2019 错误:“未解析的外部符号 WinMain@16”

编译dll但出现错误LNK2019

错误 LNK2019:使用类编译程序时出现无法解析的外部符号错误消息