|
OLE automation server
|
|||
---|---|---|---|
#18+
Всем привет. Мне нужно сделать собственный OLE сервер, чтобы стороння программа подключалась к нему и использовала функции/метода. Я пытался это сделать 2мя путями и оба раза неудачно: 1)Создал класс non-visual object. Создал в классе необходимые методы. Затем через менеджер проектов сделал automation server, используя в качестве объекта-сервера мой класс. Затем построил проект, нажал deploy - появился файл с библиотекой(tlb) и файл для реестра (reg). Запускаю файл реестра - в реестре появляется запись с моим классом - всё казалось бы хорошо... Но при попытке подключиться к серверу сторонней программой результатов нет. Функция ConnectToNewObject(мой объект) возвращает -3, -4, что по сути одно: нельзя подключиться к объекту. Я понимаю, что нужно правильно написать конструктор класса-сервера(сейчас он пустой), смотря в аналогичные проги на Си. Я прочел много литературы, везде написано "создайте класс, содержащий необходмые вам методы и атрибуты" и затем уже про создание из него сервера. Как должен выглядеть конструктор нигде не описано, ни одного готового примера нет, я в отчаянии 2)Я решил использовать другой путь - использовать объект PowerBuilder.Application. Сначала я создал объект PowerBuilder.Application и добавил в него свою библиотеку(содержащую класс для OLE сервера), чтобы потом залить полученный объект в реестр. Код такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Потом запустил 1.reg дабы обновить реестр. Потом уже попробовал этот объект создать и к чему-нибудь обратиться. Код: Код: plaintext 1. 2. 3. 4. 5.
Результат оказался очень интересным. Объект успешно создаётся. При вызове любой стандартной функции (tmp.classname() к примеру) класса, прога отрабатывает. При попытке вызова функции, написанной мной, возникает exseption name not found calling external function of object bla-bla-bla... Спасибо всем, кто прочитал! Вы меня по-настоящему спасёте,если что-нибудь дельное подскажете. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2010, 13:54 |
|
OLE automation server
|
|||
---|---|---|---|
#18+
В общем, второй способ заработал, стороннее приложение может обращаться к объекту. Из PowerBuilder, правда, сделать этого так и не удалось Но, слава богу, не всё написано так криво, как PB (приложение на плюсах)... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2010, 15:34 |
|
|
start [/forum/topic.php?fid=15&msg=36865188&tid=1335865]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
224ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 297ms |
total: | 606ms |
0 / 0 |