Copié este código de una respuesta en inglés pero al compilarlo arroja un montón de errores Estoy usando Windows 7 de 32 bits y GCC 10.3.0
#include <iostream>
#include <wininet.h>
#pragma comment(lib, "Wininet")
int main() {
HINTERNET hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
HINTERNET hFtpSession = InternetConnect(hInternet, "servidor", INTERNET_DEFAULT_FTP_PORT, "usuario", "contraseña", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
FtpPutFile(hFtpSession, "D:\\test.txt", "\\test.txt", FTP_TRANSFER_TYPE_BINARY, 0);
std::cout << "File Uploaded." << std::endl;
InternetCloseHandle(hFtpSession);
InternetCloseHandle(hInternet);
return 0;
}