silverston
08-02-2009, 12:11
Есть библиотека для соединения с программой 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.
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.