|
01.12.2004, 10:41 | #1 |
Участник
|
работа с wininet.dll
Здравствуйте, господа!
Есть следующий код: void PutFile(str 50 proxy, str 50 url, str 50 login, str 50 pass, str 50 local, str 50 remote) { DLL InetDll = new DLL('wininet'); DLLFunction InternetOpen = new DLLFunction(InetDll, 'InternetOpenA'); DLLFunction InternetConnect = new DLLFunction(InetDll, 'InternetConnectA'); DLLFunction FTPPutFile = new DLLFunction(InetDll, 'FtpPutFileA'); DLLFunction InternetCloseHandle = new DLLFunction(InetDll, 'InternetCloseHandle'); int res; InternetOpen.returns(ExtTypes:Word); InternetOpen.arg(ExtTypes::String); InternetOpen.arg(ExtTypes:Word); InternetOpen.arg(ExtTypes::String); InternetOpen.arg(ExtTypes::String); InternetOpen.arg(ExtTypes:Word); hInternet = InternetOpen.call('Ax30', 3, proxy, '', 0); InternetConnect.returns(ExtTypes:Word); InternetConnect.arg(ExtTypes:Word); InternetConnect.arg(ExtTypes::String); InternetConnect.arg(ExtTypes::Word); InternetConnect.arg(ExtTypes::String); InternetConnect.arg(ExtTypes::String); InternetConnect.arg(ExtTypes:Word); InternetConnect.arg(ExtTypes:Word); InternetConnect.arg(ExtTypes:Word); hConnect = InternetConnect.call(hInternet, url, 21, login, pass, 1, 0, 0); FTPPutFile.returns(ExtTypes:Word); FTPPutFile.arg(ExtTypes:Word); FTPPutFile.arg(ExtTypes::String); FTPPutFile.arg(ExtTypes::String); FTPPutFile.arg(ExtTypes:Word); FTPPutFile.arg(ExtTypes:Word); res = FTPPutFile.call(hConnect, local, remote, 2, 0); InternetCloseHandle.returns(ExtTypes::Word); InternetCloseHandle.arg(ExtTypes:Word); InternetCloseHandle.call(hConnect); InternetCloseHandle.call(hInternet); } Переменные hItnernet и hConnect объявлены в cassDeclaration В таком виде данная ф-ция прекрасно работает, но хотелось бы чтобы каждая ф-ция из DLL была в отдельной ф-ции класса. В этом случае работать сразу перестает (ф-ция InternetConnect возвращает ошибку). В Delphi и VB такой механизм работает. Где глюк???? |
|