Trans2QuikAPI_1.3 - пример для Excel

Страницы: 1
RSS
Trans2QuikAPI_1.3 - пример для Excel, Почему в новой версии Trans2QuikAPI нет примера для Excel и где его взять?
 
Добрый день!

В связи с появлением файла Trans2QuikAPI_1.3.rar возникли вопросы:

1) dll-64 будет работать только с QUIK версии 7 и выше?
2) Где взять пример работы с dll-64 из Excel?
3) В версии 1.2 была директория Sample_Excel, в версии 1.3 ее нет – почему (?) и если тут какой-то негатив для перспектив тех кто работает с вашей программой из Excel?
 
Цитата
guest_sl пишет:
1) dll-64 будет работать только с QUIK версии 7 и выше?
Да
Цитата
guest_sl пишет:
2) Где взять пример работы с dll-64 из Excel?
он такой же как для х32
Цитата
guest_sl пишет:
3) В версии 1.2 была директория Sample_Excel, в версии 1.3 ее нет – почему (?) и если тут какой-то негатив для перспектив тех кто работает с вашей программой из Excel?
Возьмите пример из 1.2
 
Не понятно: имя dll-файла не изменилось, при этом новый архив (просто новой версии, не новый продукт) содержит только одну версию trans2quik.dll
Она теперь будет только всегда 64-х битная? или как?
т.е. не понятно как две версии будут сосуществовать теперь "по жизни".
 
Цитата
Sergey Gorokhov пишет:
Возьмите пример из 1.2
Спасибо за информацию.
 
а для невиндовса на джаве будет библиотека?
вроде с шарпом это недалеко
 
Цитата
Alex Dronov пишет:
а для невиндовса на джаве будет библиотека?
вроде с шарпом это недалеко
Можно попдробнее: для какого именно невиндовса? и какую именно библиотеку на джаве?
 
А 32-разрядной версии 1.3 не будет что ли?
 
Цитата
А 32-разрядной версии 1.3 не будет что ли?
В ней содержательно нет ничего нового.
Только другая разрядность.
Так что пользуясь версией 1.2 (если у вас 32-х битное внешнее приложение) вы ничего не теряете в плане функционала.
 
Добрый день!
Перешел с 32-битной dll trans2quik на 64-битную, соответственно и эксель теперь 64-битный (Офис 2016)

В описаниях функций добавил PtrSafe:
Public Declare PtrSafe Function TRANS2QUIK_CONNECT Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_CONNECT@16" _
   (ByVal lpstConnectionParamsString As String, ByRef pnExtendedErrorCode As Long, _
    ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

Public Declare PtrSafe Function TRANS2QUIK_DISCONNECT Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_DISCONNECT@12" _
    (ByRef pnExtendedErrorCode As Long, ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

Public Declare PtrSafe Function TRANS2QUIK_IS_QUIK_CONNECTED Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_IS_QUIK_CONNECTED@12" _
    (ByRef pnExtendedErrorCode As Long, ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

Public Declare PtrSafe Function TRANS2QUIK_IS_DLL_CONNECTED Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_IS_DLL_CONNECTED@12" _
    (ByRef pnExtendedErrorCode As Long, ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long
   
Public Declare PtrSafe Function TRANS2QUIK_SEND_SYNC_TRANSACTION Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_SEND_SYNC_TRANSACTION@36" _
   (ByVal lpstTransactionString As String, ByRef pnReplyCode As Long, ByRef pdwTransId As Long, ByRef pdOrderNum As Double, _
    ByVal lpstrResultMessage As String, ByVal dwResultMessageSize As Long, ByRef pnExtendedErrorCode As Long, _
    ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

Public Declare PtrSafe Function TRANS2QUIK_SEND_ASYNC_TRANSACTION Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_SEND_ASYNC_TRANSACTION@16" _
   (ByVal lpstTransactionString As String, ByRef pnExtendedErrorCode As Long, _
    ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

При вызовах функций выходит ошибка вида
Например при вызове TRANS2QUIK_IS_QUIK_CONNECTED:
Run-Time Error '453'
Can't find DLL entry point _TRANS2QUIK_IS_QUIK_CONNECTED@12 in C:\trans2quik.dll

Подскажите пожалуйста в чем может быть ошибка?
(На Экселе 2003 32-битная dll работала как часы)
 
Добрый день.

Убедитесь, что версия QUIK у Вас не ниже 7.0.
Проверьте работу на наших примерах:
http://arqatech.com/upload/iblock/80a/Trans2QuikAPI_1.3_x64.zip
 
QUIK 7.16.3.14
Проверить работу на ваших примерах не представляется возможным, так как в них нет примера на MS Excel.
Примеры trans2quik версии 1.2 не подходят, поскольку на 64-битной версии MS Excel вызов dll организован несколько иначе, чем на 32-битной  
 
Цитата
Сергей написал:
QUIK 7.16.3.14
Проверить работу на ваших примерах не представляется возможным, так как в них нет примера на MS Excel.
Примеры trans2quik версии 1.2 не подходят, поскольку на 64-битной версии MS Excel вызов dll организован несколько иначе, чем на 32-битной
Пример для Excel версии  trans2quik 1.2 будет работать и для версии  trans2quik 1.3 .
 
Цитата
Egor Zaytsev написал:
Цитата
Сергей   написал:
QUIK 7.16.3.14
Проверить работу на ваших примерах не представляется возможным, так как в них нет примера на MS Excel.
Примеры trans2quik версии 1.2 не подходят, поскольку на 64-битной версии MS Excel вызов dll организован несколько иначе, чем на 32-битной
Пример для Excel версии  trans2quik 1.2 будет работать и для версии  trans2quik 1.3 .
Даже просто при открытии файла из примера  trans2quik 1.2 выходит сообщение об ошибке:

Compile error:
The code in this project must be updated for use on 64-bit systems.
Please review and update Declare statements and then mark them
with the PtrSafe attribute.

Затем открывается текст VBA кода выделенный красным цветом.
Могу выслать принтскрин...
 
Цитата
Сергей написал:
Цитата
Egor Zaytsev   написал:
Цитата
Сергей   написал:
QUIK 7.16.3.14
Проверить работу на ваших примерах не представляется возможным, так как в них нет примера на MS Excel.
Примеры trans2quik версии 1.2 не подходят, поскольку на 64-битной версии MS Excel вызов dll организован несколько иначе, чем на 32-битной
Пример для Excel версии  trans2quik 1.2 будет работать и для версии  trans2quik 1.3 .
Даже просто при открытии файла из примера  trans2quik 1.2 выходит сообщение об ошибке:

Compile error:
The code in this project must be updated for use on 64-bit systems.
Please review and update Declare statements and then mark them
with the PtrSafe attribute.

Затем открывается текст VBA кода выделенный красным цветом.
Могу выслать принтскрин...
Добрый день.

Да, в 64х разрядном Excel работать не будет.
Возвращаемся в к первоначальной ошибки. Пришлите полный код, который вы загружаете.
 
    Public PathToInfo As String = "C:\QUIK\"
   Public Const dwErrorMessageSize As Long = 250
   Public Const dwResultMessageSize As Long = 250
   Dim FunctionResult As Long
   Dim FunctionResultString As String
   Dim pnExtendedErrorCode As Long
   Dim lpstrErrorMessage As String * 250
   Dim nReturnCode As Long
   Dim dwTransID As Long
   Dim dordernum As Double
   Dim lpstrResultMessage As String * 250
   Dim TransStr As String

Public Declare PtrSafe Function TRANS2QUIK_CONNECT Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_CONNECT@16" _
   (ByVal lpstConnectionParamsString As String, ByRef pnExtendedErrorCode As Long, _
    ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

Public Declare PtrSafe Function TRANS2QUIK_DISCONNECT Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_DISCONNECT@12" _
    (ByRef pnExtendedErrorCode As Long, ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

Public Declare PtrSafe Function TRANS2QUIK_IS_QUIK_CONNECTED Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_IS_QUIK_CONNECTED@12" _
    (ByRef pnExtendedErrorCode As Long, ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

Public Declare PtrSafe Function TRANS2QUIK_IS_DLL_CONNECTED Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_IS_DLL_CONNECTED@12" _
    (ByRef pnExtendedErrorCode As Long, ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long
   
Public Declare PtrSafe Function TRANS2QUIK_SEND_SYNC_TRANSACTION Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_SEND_SYNC_TRANSACTION@36" _
   (ByVal lpstTransactionString As String, ByRef pnReplyCode As Long, ByRef pdwTransId As Long, ByRef pdOrderNum As Double, _
    ByVal lpstrResultMessage As String, ByVal dwResultMessageSize As Long, ByRef pnExtendedErrorCode As Long, _
    ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

Public Declare PtrSafe Function TRANS2QUIK_SEND_ASYNC_TRANSACTION Lib "C:\trans2quik.dll" Alias "_TRANS2QUIK_SEND_ASYNC_TRANSACTION@16" _
   (ByVal lpstTransactionString As String, ByRef pnExtendedErrorCode As Long, _
    ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long

Public Sub Connect_Click()
   FunctionResult = TRANS2QUIK_CONNECT(PathToInfo, pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize)
End Sub

Public Sub DisConnect_Click()
   FunctionResult = TRANS2QUIK_DISCONNECT(pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize)
End Sub

Public Sub CheckQuikConnect_Click()
   FunctionResult = TRANS2QUIK_IS_QUIK_CONNECTED(pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize)
End Sub

Public Sub CheckDLLConnect_Click()
   FunctionResult = TRANS2QUIK_IS_DLL_CONNECTED(pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize)
End Sub

Public Sub btn_SendOrderASync_Click()
   TransStr = "ACTION=NEW_ORDER; TRANS_ID=208; CLASSCODE=TQBR; SECCODE=LKOH; ACCOUNT=L01+00000F00; CLIENT_CODE=U1294; TYPE=L; OPERATION=B; QUANTITY=1; PRICE=4000"
   FunctionResult = TRANS2QUIK_SEND_ASYNC_TRANSACTION(TransStr, pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize)
End Sub

Public Sub btn_SendOrderSync_Click()
   TransStr = "ACTION=NEW_ORDER; TRANS_ID=208; CLASSCODE=TQBR; SECCODE=LKOH; ACCOUNT=L01+00000F00; CLIENT_CODE=U1294; TYPE=L; OPERATION=B; QUANTITY=1; PRICE=4000"
   FunctionResult = TRANS2QUIK_SEND_SYNC_TRANSACTION(TransStr, nReturnCode, dwTransID, dordernum, lpstrResultMessage, dwResultMessageSize, pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize)
End Sub

Public Sub btn_SendKillSync_Click()
   TransStr = "ACTION=KILL_ORDER; CLASSCODE=TQBR; SECCODE=LKOH; TRANS_ID=200; ORDER_KEY=" & CStr(Cells(8, 1))
   FunctionResult = TRANS2QUIK_SEND_SYNC_TRANSACTION(TransStr, nReturnCode, dwTransID, dordernum, lpstrResultMessage, dwResultMessageSize, pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize)
End Sub
 
Здравствуйте,

Сергей, попробуйте во всех функция указать следующим образом. Заменить строки типа: _TRANS2QUIK_SEND_ASYNC_TRANSACTION@16 на TRANS2QUIK_SEND_ASYNC_TRANSACTION, заменить _TRANS2QUIK_IS_QUIK_CONNECTED@12 на TRANS2QUIK_IS_QUIK_CONNECTED и так далее по всему коду.
Сообщите результат.
 
Если строки заменить как вы предлагаете, то компилятор автоматически удаляет в коде выражение [Alias "TRANS2QUIK_IS_QUIK_CONNECTED"]  
 
Цитата
Сергей написал:
   (ByVal lpstTransactionString As String, ByRef pnExtendedErrorCode As Long, _
Здравствуйте!

Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.
 
Цитата
Сергей написал:
Если строки заменить как вы предлагаете, то компилятор автоматически удаляет в коде выражение [Alias "TRANS2QUIK_IS_QUIK_CONNECTED"]
Добрый день,
    По ряду архитектурных особенностей 64-разрядного Excel существующий     ранее пример использования TRANS2QUIK.DLL работать не будет, поэтому     мы не распространяем его с новой версией библиотеки.
 
Спасибо за разъяснения.
А что посоветуете делать тем, кто использует Excel и trans2quik.dll для своих роботов?
(вариант с текстовым файлом я знаю, но это прошлый век к сожалению)
 
Добрый день!

Цитата
Anastasia Gordienko написал:
По ряду архитектурных особенностей 64-разрядного Excel существующий     ранее пример использования TRANS2QUIK.DLL работать не будет, поэтому     мы не распространяем его с новой версией библиотеки.
Okay, Quik [%-)]... а где тогда можно найти работающий пример использования TRANS2QUIK.DLL в Excel-64? Он существует в природе? Quik вообще работает с Excel-64 через TRANS2QUIK.DLL? Люди же не от праздности интересуются, а для работы... помогите, пожалуйста, с данной информацией...
 
Цитата
rman написал:
Добрый день!
Цитата
Anastasia  Gordienko   написал:
По ряду архитектурных особенностей 64-разрядного Excel существующий     ранее пример использования TRANS2QUIK.DLL работать не будет, поэтому     мы не распространяем его с новой версией библиотеки.
Okay, Quik [%-)]... а где тогда можно найти работающий пример использования TRANS2QUIK.DLL в Excel-64? Он существует в природе? Quik вообще работает с Excel-64 через TRANS2QUIK.DLL? Люди же не от праздности интересуются, а для работы... помогите, пожалуйста, с данной информацией...
Добрый день.

Такого примера в текущий момент нет. Можем зарегистрировать пожелание на доработку.
 
Добрый день!

Цитата
Egor Zaytsev написал:
Такого примера в текущий момент нет. Можем зарегистрировать пожелание на доработку.

Конечно нужно регистрировать на доработку, какие сомнения.
По мне так это и не доработка вовсе, а восстановление привычного состояния - когда есть декларируемая технология/интерфейс работы с программой и есть пример ее использования. Так было всегда, зачем для Excel-64 делать столь негативное исключение...
Excel остается наиболее массовым продуктом с наименее высоким порогом входа в вопросы автоматизации работы на фондовом рынке... именно тут и нужен рабочий пример... люди, пишущие на C++ и т.п. языках в состоянии сами многое понять и решить, а тем, кому доступен только Excel/VBA (а таких людей имхо достаточно много) пример откроет окно возможностей...  
 
Здравствуйте!

Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Страницы: 1
Читают тему (гостей: 2)
Наверх