gpt4 book ai didi

c++ - WinInet ftp 连接错误 123

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:34 25 4
gpt4 key购买 nike

我正在尝试通过 C++/WinInet 连接到我的 ftp 服务器,但我一直收到错误 123 (ERROR_INVALID_NAME)。谷歌研究说这个错误是由错误的服务器地址引起的,但我的地址是有效的,与我的用户名和密码相同。这是我的代码:

void FileSubmit(LPCWSTR addr, LPCWSTR login, LPCWSTR pass, LPCWSTR pcFile, LPCWSTR ftpFile)
{
HINTERNET hInternet;
HINTERNET hFtpSession;
hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);
if (hInternet == NULL)
{
cout << "Error: " << GetLastError();
}
else
{
cout<<"Connecting to :"<<(char*)login<<" @ "<<(char*)addr<<", to upload file from PC: "<<(char*)pcFile<<" as "<<(char*)ftpFile<<endl;
hFtpSession = InternetConnect(hInternet, addr, INTERNET_DEFAULT_FTP_PORT,
login, pass, INTERNET_SERVICE_FTP, NULL, NULL);
if (hFtpSession == NULL)
{
cout<<"FTPSESSION ERROR!\n";
cout << "Error: " << GetLastError();
}
else
{
cout<<"hFTPsession successfull!\n";
if (!FtpPutFile(hFtpSession, pcFile, ftpFile, FTP_TRANSFER_TYPE_BINARY, 0))
{
cout << "Error: " << GetLastError();
}
else
cout<<"FILE "<<(char*)pcFile<<" HAS BEEN SUCCESSFULLY UPLOADED AS "<<(char*)ftpFile<<"!\n";
}
}
}

我正在使用它:

FileSubmit((LPCWSTR)"ftp.ibieda.cba.pl",(LPCWSTR)"login",
(LPCWSTR)"pass",(LPCWSTR)"C:\\file.txt",(LPCWSTR)"\\file.txt");

任何人都可以帮助并告诉我为什么 InternetConnect 返回 123 (ERROR_INVALID_NAME) 吗?

最佳答案

您从 const char*const wchar* 的类型转换是错误的。传递宽字符串文字(例如,L"ftp.ibieda.cpl.pl")或使用 MultiByteToWideChar() 函数。

关于c++ - WinInet ftp 连接错误 123,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25228996/

25 4 0