Wininet给出链接器错误我正在使用devc ++

时间:2014-04-04 03:45:01

标签: c++ linker-errors wininet

#include <iostream>
#include <windows.h>
#include <wininet.h>
#pragma comment(lib, "wininet")
#include <pshpack4.h>
#include <poppack.h>
using namespace std;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{
HINTERNET hInternet;
HINTERNET hFtpSession;
hInternet = InternetOpen(NULL,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
hFtpSession = InternetConnect(hInternet, "ftp.drivehq.com",INTERNET_DEFAULT_FTP_PORT, "usr" ,"pass", INTERNET_SERVICE_FTP, 0, 0);
FtpPutFile(hFtpSession, "log.txt", "mylog.txt", FTP_TRANSFER_TYPE_BINARY, 0);

InternetCloseHandle(hFtpSession);
InternetCloseHandle(hInternet);

return 0;
}
[Linker error] undefined reference to `InternetOpenA@20' 
[Linker error] undefined reference to `InternetConnectA@32' 
[Linker error] undefined reference to `FtpPutFileA@20' 
[Linker error] undefined reference to `InternetCloseHandle@4' 
[Linker error] undefined reference to `InternetCloseHandle@4' 
ld returned 1 exit status 
C:\Users\Wade\Desktop\test\command builder\Makefile.win [Build Error]  [command.exe] Error 1 

我的代码在这里出了什么问题,它一直给我链接器错误?

1 个答案:

答案 0 :(得分:1)

我的第一个C ++程序中有很多这样的错误。链接WinINet库是一个问题。如果您正在使用MinGW添加&#34; -lwininet&#34; (没有引号)到附加的命令参数,它应该是固定的。如果您使用VC ++,我不知道该怎么做。此外,请确保WinINet库的位置位于链接器的搜索路径中。另外一个注意事项:在MinGW的WinInet中不存在INTERNET_PER_CONN_ *变量以及其他一些变量,我还没有找到解决它的解决方案。