1

我在 Windows 7 上使用 Visual Studio 2010。我有这个功能:

void send(char* log, char* pas, char* ser, char* plik)
{   
    HINTERNET hInternet;
    HINTERNET hFtpSession;
    hInternet = InternetOpenA(NULL,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
    hFtpSession = InternetConnectA(hInternet,ser,INTERNET_DEFAULT_FTP_PORT,log,pas, INTERNET_SERVICE_FTP, 0,0 );
    FtpPutFileA(hFtpSession, "WMM.txt", plik, FTP_TRANSFER_TYPE_BINARY, 0);
}

它没有用:

  1. 错误 LNK2019:未解析的外部符号“void __cdecl send(class std::basic_string<char,struct std::char_traits,class std::allocator >,class std::basic_string<char,struct std::char_traits,class std::分配器>,std::basic_string类<char,struct std::char_traits,std::allocator类>,std::basic_string<char,struct std::char_traits,std::allocator类>)" (?send@ @YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@000@Z) 在函数 _main 中引用

2) 致命错误 LNK1120: 1 未解决的外部问题

我搜索了解决方案并找到了这个:将此添加#pragma comment(lib, "wininet")到您的代码中或在您的项目属性中添加 wininet.lib:链接器->输入

我这样做但仍然无法正常工作 - 我得到了与之前相同的错误。你知道我应该怎么做才能解决这个问题吗?

4

1 回答 1

1

您未解决的外部符号错误适用于这样的功能

void send(std::string log, std::string pas, std::string ser, std::string plik)

但是您向我们展示的功能是这样的

void send(char* log, char* pas, char* ser, char* plik)

你已经在头文件中编写了第一个版本,在源文件中编写了第二个版本。您需要保持一致,一个版本或另一个版本,而不是两者。

于 2013-04-15T19:07:46.650 回答