|  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 такой механизм работает. Где глюк???? | 
|  | 
|  01.12.2004, 12:11 | #2 | 
| Участник | 
			
			А как ошибка выглядит?
		 | 
|  | 
|  01.12.2004, 12:31 | #3 | 
| Участник | 
			
			GetLastError возвращает 12172, а сама ф-ция возвращает 0 в MSDN описаны коды с 12001 - 12156 ??? | 
|  | 
|  01.12.2004, 12:53 | #4 | 
| Участник | Цитата: 
		
			Изначально опубликовано Lucky13  в MSDN описаны коды с 12001 - 12156 ??? http://msdn.microsoft.com/library/de...r_messages.asp | 
|  | 
|  01.12.2004, 13:14 | #5 | 
| Участник | 
			
			Спасибо за ссылку, но это проблемы не решает Ясно что хэндл неправильно инициализирован, вопрос почему? Причем когда все в одной ф-ции - работает, а в разных не работает | 
|  | 
|  01.12.2004, 13:24 | #6 | 
| Участник | 
			
			xpo с классом выложите
		 | 
|  | 
|  01.12.2004, 13:58 | #7 | 
| Участник | 
			
			Выложил
		 | 
|  | 
|  01.12.2004, 14:55 | #8 | 
| Участник | 
			
			Попробуйте перегрузить метод new() Вашего класса, где проинициализируйте все объекты Internet. Что-то вроде PHP код: 
			 | 
|  | 
|  01.12.2004, 15:03 | #9 | 
| Участник | 
			
			Спасибо за совет, все получилось.
		 | 
|  |