Страница 1 из 2

OLE шлюз

Добавлено: 17 апр 2009, 11:11
Hmyrii
Всем доброго времени суток.
Появилась нужда доступа к фейсам галактики из стороних приложений.
Открыл доку. Вроде все внятно написано.

1. Положить в ЕХЕ библиотеку AtOleAut.dll и запустить галю с ключом /regserver
2. Дале можно приступать к создани объекта, код из VBA: GalApp = CreateObject("GalNet.App")

при этом поимел такую картиyку
1. после выполнения первого пункта галя стартанула и тут же закрылась. Запустил oleview и ... не нашел кома галактического
2. При выполнении GalApp = CreateObject("GalNet.App") в VBA говорит что не может создать AtiveX components

может кто нить просветить меня че не так?
думаю стоит еще упоминуть о том что я галю не сетупил, просто копирнул когда то давно с чьей то машины и работаю с ней, но мне кажется что это совершенно не критично

Добавлено: 17 апр 2009, 12:10
LaaLaa
Статья в документации была написана давно, когда основным файлом приложения был GalNet.exe. Сейчас основной файл это AtlExec.exe. Galnet.exe - просто заглушка-запускатель AtlExec.exe.

Делайте все как в документации только вместо GalNet везде пишите AtlExec
На пример:
GalApp = CreateObject("AtlExec.App")

Добавлено: 20 апр 2009, 04:01
Hmyrii
Спасибо огромное. Все заработало. И в OleView сразу нашел зарегеный объект :grin:

Добавлено: 20 апр 2009, 07:59
Hmyrii
Да уж. Радость была не долга.
Галя стартует. А вот попытки передать ей параметры, дабы запустился какой нить интерфейс не увенчались успехом.

пробовал и так

Код: Выделить всё

Dim GalApp As Object, Str As Object
GalApp = CreateObject("AtlExec.App")
Str = GalApp.ExecVip("ObjRem")
и эдак

Код: Выделить всё

Dim GalApp As Object, Str As Object
Dim myParam() As Char = {"6", "O", "B", "J", "R", "E", "M"}
GalApp = CreateObject("AtlExec.App")
Str = GalApp.ExecVip(myParam)
все одно твердит что несосвпадает тип параметра
попробовал даже на .NET через инвоцирование, галя стартует нормально, а имя фейса глотать не хочет

Добавлено: 20 апр 2009, 11:43
LaaLaa
Дальше примера из документации у меня опыта не было. Но что мне подсказывает, что нужно имя компонента L_Remont указывать.

Код: Выделить всё

Dim GalApp As Object, Str As Object
GalApp = CreateObject("AtlExec.App")
Str = GalApp.ExecVip("L_Remont::ObjRem")

Добавлено: 21 апр 2009, 10:27
Hmyrii
да нет, дело вовсе не в этом.
передавать имя компаненты я тоже пробовал.
только дело не доходит до анализа содержимого в переданном параметре так как система отказывается принимать этот параметр со словами COMException "несовпадение типов"

это очень плохо
придется городить огород
1. создавать текстовик где будут лежать значения параметров
2. прописывать в cfg с каким фейсом стартовать гале, наприимер test
3. запускать галю - блого это работает нормально
4. в интерфейсе test делать чтение созданого в п.1 текстовика и запускать уже нужный мне ObjRem с нужными параметрами

при этом за такое решение мне клиент выпьет всю кровь так как когда стартуешь галю с таким ключом то после закрытия интерфейса, галактика тоже сразу закрывается а это будет страсть как напрягать людей

Добавлено: 21 апр 2009, 14:36
LaaLaa
Т.е. проблема передать стоку? Не пробовал, но проблем вроде быть не должно.

Предложенный алгоритм ограждения огорода действительно не выход.

Добавлено: 21 апр 2009, 14:55
Gameus_
щас хотел попробовать - застрял на запуске галки :)
в доке написано - выбранные параметры необходимо оформить в виде .cfg-файла по умолчание для данного .exe;

как он должен называться (сам cfg) ? :)
рег прошел нормально, при попытке вызвать галактика ругается что не загружен менеджер бд....

Добавлено: 21 апр 2009, 15:49
Gameus_
galnet.cfg подошел :)

далее тоже исключение :(

Добавлено: 21 апр 2009, 18:45
Gameus_
Может есть у кого пример рабочий для 8.1 или дока свежая ?
Поделитесь плиз.

Добавлено: 05 май 2009, 11:48
Gameus_
я так понимаю свежей доки нет ни у кого.....

Добавлено: 07 май 2009, 03:56
Hmyrii
я так понимаю свежей доки нет ни у кого.....
Есть шанс все таки получить решение на эту проблему. Вопрос был озвучен техподдержке. В настоящий момент статус такой - "эксперт приступил к поиску решения". Быть может что нить и выстрелит на этом поприще. Как появится новая информация обязательно поделюсь.

Добавлено: 01 сен 2009, 21:09
Max_Fin
Как успехи по решению данной проблемы?

Добавлено: 02 сен 2009, 11:30
evchic
А что конкретно интересует по этому вопросу?

Добавлено: 02 сен 2009, 11:31
evchic
Hmyrii писал(а):да нет, дело вовсе не в этом.
передавать имя компаненты я тоже пробовал.
только дело не доходит до анализа содержимого в переданном параметре так как система отказывается принимать этот параметр со словами COMException "несовпадение типов"

это очень плохо
придется городить огород
1. создавать текстовик где будут лежать значения параметров
2. прописывать в cfg с каким фейсом стартовать гале, наприимер test
3. запускать галю - блого это работает нормально
4. в интерфейсе test делать чтение созданого в п.1 текстовика и запускать уже нужный мне ObjRem с нужными параметрами

при этом за такое решение мне клиент выпьет всю кровь так как когда стартуешь галю с таким ключом то после закрытия интерфейса, галактика тоже сразу закрывается а это будет страсть как напрягать людей
Dim GalApp As Variant, Str As Variant