Вызов внешних функций через Dispatch-интерфейс

Страницы: 1
RSS
Вызов внешних функций через Dispatch-интерфейс, QLua vs Lua 5.1
 
Захотел сделать собственный локальный COM-сервер для вызовов из Lua по аналогии с классическим примером
excel = luacom.CreateObject("Excel.Application")
excel.Visible = true
Тестировал через построковый интерпретатор, всё работает. Пытаюсь вызвать через QUIK, запуская тот же самый скрипт - ноль реакции. Окно формы не открывает, результат функции не выдаёт.
Возможно, для запуска COM-сервера требуется реализовать в нём какие-то дополнительные функции интерфейса, типа явно вызывать FormShow?
Или luacom.dll нужен специальный?
Есть где-то инструкция?
 
LUACOM ДЛЯ QUIK
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Да, с такой библиотекой веселее, но и вопросов больше.
Если не написать excel.Visible = true, то окно так и не открывает.
Но если использовать вариант
require "w32"
require "luacom"  
function main()  
w32.CoInitialize()
и далее в команде
excel = luacom.CreateObject("Excel.Application")  вместо CreateObject использовать GetObject, то никакого excel.Visible = true не требуется, excel прекрасно запускается, хотя по описанию функции, она должна только находить уже созданный объект. Можно сделать вывод, что явная команда excel.Visible = true вызывает некие функции интерфейса excel, а в GetObject эти вызовы уже встроены в отличие от CreateObject.
Всё это наводит на мысли о "вольном" написании этих библиотек. И тем более вызывает желание увидеть официальные требования к функционалу COM-серверов.
Страницы: 1
Читают тему
Наверх