Код в киборе.
Спойлер (Отобразить)CODE:external(INT, "ftpD", "FTPDowloadFile", pathfolder()+"FtpDowloadFile.dll");
int y;
string host="site.com"; // или host="001.002.003.004"; // Адрес сервера
string nam="me@site.com"; // Имя пользователя для подключения по FTP
string pass="0123456789"; // Пароль FTP-аккаунта
string dire="моя директория"; // Если нужно создать директорию или поместить файл в уже имеющуюся. Начинается это дело от корня FTP-аккаунта
// Так же можно углубляться - dire="моя директория/моя поддиректория/дальше";
// Но нужно понимать, если предыдущей директории нет - то поддиректория не создастся и файл не загрузится.
// Если файл нужно загрузить просто в корень то dire="";
nfl="C:\Portable\1.bmp" // Путь к файлу на диске
nfs=dire+"/1.bmp"; // Итоговое имя файла на сервере
y=ftpD(host, nam, pass, dire, nfl, nfs);
// Возвращает 1 - при успехе, 0 - файл не загрузился (причины: проблемы с директорией, читай выше, проблемы с файлом на диске - имя или путь или ещё чего ), -1 - если нет подключения - offline, неправильный адрес сервера, имя, пароль.
messagebox(y);
Сама DLL - положить в папку с кибором.
Код DLL (C++).
Спойлер (Отобразить)CODE:#include "pch.h"
#include <wininet.h>
#pragma comment(lib, "Wininet")
extern "C" __declspec(dllexport) int FTPDowloadFile(char* host, char* nam, char* pass, char* dir, char* nfl, char* nfs) {
HINTERNET Internet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
HINTERNET FtpSession = InternetConnect(Internet, host, INTERNET_DEFAULT_FTP_PORT, nam, pass, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
if ((int)FtpSession < 1){ return -1; }
FtpCreateDirectory(FtpSession, dir);
int a = FtpPutFile(FtpSession, nfl, nfs, FTP_TRANSFER_TYPE_BINARY, 0);
InternetCloseHandle(FtpSession);
InternetCloseHandle(Internet);
return a;
}
Это моё первое "ваяние", по принципу быстрей-быстрей.
Для сборки пришлось или так и нужно - включить в свойствах проекта "Использовать многобайтовую кодировку".
DLL явно можно поправить или доработать - сделать многофункциональнее и тд и тп. - Приветствуется!