|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » помогите пожалуйста разобраться с DLL |
|
помогите пожалуйста разобраться с DLL
|
Новый участник Сообщения: 3 |
Есть библиотека для соединения с программой Quik
1.1.Функция TRANS2QUIK_CONNECT Назначение: функция используется для установления связи библиотеки TRANS2QUIK_Pr.dll с терминалом QUIK. Синтаксис: long TRANS2QUIK_CONNECT(LPCSTR lpcstrConnectionParamsString, long* pnExtendedErrorCode, LPSTR lpstrErrorMessage, DWORD dwErrorMessageSize) Описание: Result Тип Long. Возвращаемое число может принимать следующие значения: TRANS2QUIK_SUCCESS - соединение установлено успешно. TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND - в указанном каталоге либо отсутствует INFO.EXE, либо у него не запущен сервис обработки внешних*подключений, в* pnExtendedErrorCode в этом случае передается 0. TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED - используемая версия Trans2QUIK.DLL указанным INFO.EXE не поддерживается, в pnExtendedErrorCode в этом случае передается 0. TRANS2QUIK_DLL_ALREADY_CONNECTED - соединение уже установлено, в pnExtendedErrorCode в этом случае передается 0. TRANS2QUIK_FAILED - произошла ошибка при установлении соединения, в pnExtendedErrorCode в этом случае передается дополнительный код ошибки. lpcstrConnectionParamsString Тип: Строка. Полный путь к каталогу, в котором установлен INFO.EXE, с которым устанавливаем соединение. pnExtendedErrorCode Тип: указатель на переменную типа Long. В случае возникновения ошибки может содержать расширенный код ошибки. lpstrErrorMessage Тип: указатель на переменную типа Строка. В случае возникновения ошибки может получать сообщение о возникшей ошибке. dwErrorMessageSize Тип: Long. Содержит длину строки, на которую ссылается указатель lpstrErrorMessage. Задача-с помощью скрипта на Autoit соединиться с программой через библиотеку и получить ответ,что соединились или нет. Делаю следующий код: [code] Dim $a, $Path_Quik, $pnExtendedErrorCode, $mesEr, $er, $lpstrErrorMessage, $dwErrorMessageSize, $pnExtendedErrorCode, $dwErrorMessageSize, $dll, $d $Path_Quik = "C:\Quik5\" ;определяю путь к программе quik $dll = DllOpen("trans2quik.dll"); вызываю библиотеку DllCall($dll, "long*", "TRANS2QUIK_CONNECT", "str", $Path_Quik, "str", $pnExtendedErrorCode, "str", $lpstrErrorMessage, "dword", $dwErrorMessageSize);вызываю функцию TRANS2QUIK_CONNECT MsgBox(1, "Вывод", $lpstrErrorMessage); Вывожу результат Однако получаю пустое сообщение вместо сообщения со значением переменной $lpstrErrorMessage Помогите разобраться с вызовом и работой с функциями dll. |
|
Отправлено: 12:11, 08-02-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата silverston:
;Создаём структуры $stExtErrCode = DllStructCreate("long") $pnExtendedErrorCode = DllStructGetPtr($stExtErrCode) $stErrMessage = DllStructCreate("str") $lpstrErrorMessage = DllStructGetPtr($stErrMessage) $dwErrorMessageSize = DllStructGetSize($stErrMessage) $Path_Quik = "C:\Quik5\" ;Определяю путь к программе quik $dll = DllOpen("trans2quik.dll") ;Вызываю библиотеку DllCall($dll, "long", "TRANS2QUIK_CONNECT", _ ;Вызываю функцию TRANS2QUIK_CONNECT "str", $Path_Quik, _ "ptr", $pnExtendedErrorCode, _ "ptr", $lpstrErrorMessage, _ "dword", $dwErrorMessageSize) MsgBox(1, "Вывод", DllStructGetData($stErrMessage, 1)); Вывожу результат |
|
------- Отправлено: 12:28, 08-02-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Посмотрел в гугле на предмет создания структур в Autoit, ничего не нашел. Поделитесь ссылкой пожалуйста.
UPD:А гугл,кстати,первой строкой в результатах поиска ссылается на этот форум и эту ветку :-() |
Отправлено: 18:28, 08-02-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 18:46, 08-02-2009 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Для чего служат структуры?Никогда не встречал таких конструкций,может быть потому,что опыт в программировании невелик,тем более,с DLL сталкиваюсь в первый раз.
|
|
Отправлено: 04:38, 09-02-2009 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата silverston:
|
|
------- Отправлено: 14:16, 09-02-2009 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - Помогите пожалуйста разобраться Dir-120 проподает итерннет. | mithell | Сетевые технологии | 3 | 30-09-2009 03:51 | |
Установка - [решено] Ошибка SXS.dll. Пожалуйста помогите!!! | feliks87 | Microsoft Windows 2000/XP | 2 | 12-09-2008 15:34 | |
Помогите, пожалуйста, разобраться с Super Turbo Tango Patcher | VekMilliter | Автоматическая установка приложений | 3 | 24-09-2007 16:08 | |
Помогите разобраться, пожалуйста | mazepkstan | Сетевые технологии | 1 | 12-04-2003 21:20 | |
Помогите разобраться с pdm.dll | Jegoroff | Microsoft Windows 95/98/Me (архив) | 4 | 29-01-2003 19:16 |
|