Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » помогите пожалуйста разобраться с DLL

Ответить
Настройки темы
помогите пожалуйста разобраться с DLL

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть библиотека для соединения с программой 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

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата silverston:
lpstrErrorMessage
Тип: указатель на переменную типа Строка »
Насколько я понимаю, тут требуется создание структуры:

Код: Выделить весь код
;Создаём структуры
$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)); Вывожу результат
А также возможно понадобится и заполнение структур...

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:28, 08-02-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Посмотрел в гугле на предмет создания структур в Autoit, ничего не нашел. Поделитесь ссылкой пожалуйста.
UPD:А гугл,кстати,первой строкой в результатах поиска ссылается на этот форум и эту ветку :-()

Отправлено: 18:28, 08-02-2009 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата silverston:
Посмотрел в гугле на предмет создания структур в Autoit »
А почему в гугле, превое место где нужно искать аутоитовские пренадлежности, это его же справка .

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 18:46, 08-02-2009 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Для чего служат структуры?Никогда не встречал таких конструкций,может быть потому,что опыт в программировании невелик,тем более,с DLL сталкиваюсь в первый раз.

Отправлено: 04:38, 09-02-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата silverston:
Для чего служат структуры? »
Для строения данных. Это позволяет передавать данные более эффективно/надёжно и быстро с одного ммодуля в другой (но не обязательно, структуры можно также использовать вместо стандартных массивов, которые "страдают" ограничением в скорости).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 14:16, 09-02-2009 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » помогите пожалуйста разобраться с DLL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - Помогите пожалуйста разобраться 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




 
Переход