|
![]() |
#1 |
Участник
|
Посмотрите, как реализован вызов, к примеру, WinAPI::getComputerName() - там по ссылке передается DWORD, куда вызываемая функция записывает длину строки с названием компьютера. Обратите внимание, что тип аргументов функции указываются как ExtTypes::Pointer.
|
|
![]() |
#2 |
Участник
|
А ещё где можно посмотреть как в Аксапте 3.0 получить дескриптор файла из функции библиотеки dll? А так же как можно представить IntPtr в Аксапте 3.0
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#3 |
Участник
|
Я хотел бы ещё поинтересоваться, как можно построить в Axapta 3.0 указатель на дескриптор? Дескриптор имеет значение Void
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#4 |
Участник
|
Цитата:
Цитата:
Цитата:
Цитата:
Сообщение от ShkipeRR
![]() Появилась возможность спрограммировать отдельное приложение-сервис на основе компоненты CipherLabTCP.dll. как будет лучше принять данные с программы сервис и отправить обратное сообщение программе сервис, чтобы в дальнейшем сервис программа отослала это сообщение на дисплей ТСД (двунаправленная связь)?
PS. Хотя уже слабо верится, что на решение реальной задачи кто-то может отвести столько времени... Последний раз редактировалось gl00mie; 12.03.2014 в 10:40. Причина: PS |
|
![]() |
#5 |
Участник
|
Это реальная задача, только вот никак не получается подключится к компоненте, из примера смотришь вроде легко, для аксапты сложновато. в ступор сразу ввел указатель на дескриптор, а точнее создаем объект функцией cipherlabtcpCreate и получаем дескриптор сервера-
компоненты handle. никак не получается этот дескриптор Handle получить в аксапте 3.0. в примере этот дескриптор при обращении к функции cipherlabtcpCreate получается сразу 8 знаков в аксапте он получается 0. в результате автоматическое подключение к ТСД не происходит.
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#6 |
Участник
|
Ничего не получается с WinAPI будет программироваться отдельная программа для соединения ТСД с Аксаптой, будущая программа-сервис будет выполнять следующее:
1. Автоматически запускаться в виде сервиса, если программа-сервис дала сбой, то автоматически перезапускаться (при запуске происходит подключение к ТСД, если ТСД проявил активность); 2. После того как программа сервис была запущена на сервере, программа – сервис должна ожидать данные от терминалов сбора данных; 3. Как только какой-то терминал сбора данных проявит свою активность в функции-обработчике сначала нужно узнать тип события. Всего может быть 5 типов событий от ТСД: MAKE, CLOSE, QUERY, INSERT, UPDATE; 4. Выяснить серийный номер ТСД, который вызвал событие; 5. Получить данные из ТСД вместе с серийным номером от ТСД; 6. Отправить полученные данные из ТСД в ИС Axapta; 7. Ожидать ответа от ИС Axapta по полученным данным из ТСД; - Если в течении 5 секунд ответа нет, то освободить ресурсы для приема следующих данные от ТСД; - Если в течении 5 секунд ответ в программу сервер пришёл, то: a) принять ответ от Axapta в программу-сервис; b) отправить полученный ответ на дисплей ТСД, который вызвал событие (по серийному номеру ТСД); c) Освободить ресурсы и ждать следующих данных от ТСД; По этому поводу я хотел бы узнать у форума какими способами лучше принимать данные из внешней программы - сервис в Axapta 3.0 и какими способами лучше передавать данные (обратный ответ) из Axapta 3.0 обратно внешней программы - сервис?
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#7 |
Участник
|
Помогите реализовать в аксапте следущее:
в библиотеке CipherLabTCP.dll имеется функция следующего типа: Наименование: GetProperties(SAFEARRAY **paParams, LONG * Result) Вх. данные: paParams – Двумерный массив из 3 элементов типа (VARIANT). Вых. Данные: 1 элемент — Порт; 2 элемент — (0 — писать в файл, 1 — генерировать внещнее событие); 3 элемент — (1 — выводить отладочную информацию, 0 — не выводить отладочеую информацию); Описание: Функция для получения свойств компоненты. Возвращаемое значение: В случае успеха возвращает в Result двойной указатель на SAFEARRAY, иначе 0 Как можно изобразить это в аксапте 3.0? Как я думаю нужно организовать двумерный массив из 3 элемента, но не знаю как это будет выглядеть на языке X ++, помогите разобраться?
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#8 |
Banned
|
Цитата:
![]() Феерично. По крайней мере, автор перешел к активным действиям, т.е. программированию. Автор хочет соорудить что-то вроде listener, для чего на мой взгляд дилетанта разумнее всего было бы запрограммировать отдельный компонент ActiveX, встроить в форму AX 3.0 и подключить event-ы к коду X++. Последний раз редактировалось EVGL; 21.03.2014 в 19:21. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|