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++ 程序中未解析的外部符号的主要内容,如果未能解决你的问题,请参考以下文章
使用 qt creator 和 eigen 库编译程序时出现 lnk2019 错误