想通了。下面是我使用
#include <wininet.h>
#pragma comment(lib, "Wininet")
void FileSubmit()
{
HINTERNET hInternet;
HINTERNET hFtpSession;
hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (hInternet == NULL)
{
cout << "Error: " << GetLastError();
}
else
{
hFtpSession = InternetConnect(hInternet, "server", INTERNET_DEFAULT_FTP_PORT, "user", "pass", INTERNET_SERVICE_FTP, 0, 0);
if (hFtpSession == NULL)
{
cout << "Error: " << GetLastError();
}
else
{
if (!FtpPutFile(hFtpSession, "C://file.txt", "/file.txt", FTP_TRANSFER_TYPE_BINARY, 0))
{
cout << "Error: " << GetLastError();
}
}
}
}
代碼中看到http://msdn.microsoft.com/en-us/library/windows/desktop/aa384180%28v=vs.85%29.aspx爲大量的示例代碼(這不難發現) – deviantfan
我一直在那裏。我已經瀏覽了大約200個不同的頁面。我已經閱讀了很多。我似乎正在做正確的事情,但有很多方法,以及許多不同的可能的錯誤。 –
如果你的意思是可能的運行時錯誤(而不是編程錯誤):是的,沒有不同的例子可以解決這個問題。整個Winapi的大部分都是按照每個命令有大約100(至少「很多」)不同的可能錯誤的方式來設計的。關於編程錯誤:如果代碼太混亂,在同一個網站上有圖表,顯示您需要的核心功能的名稱,順序等。剩下的就是閱讀這個函數的文檔來查找可能的參數,返回值等。 – deviantfan