Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
FLL & COM DLL
|
|||
|---|---|---|---|
|
#18+
Создаю COM DLL VFP. Для примера: С таким кодом компоненты вызов obj = CREATEOBJECT("comdll.Test") работает Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Выдает сообщение о том, что произошла неопознанная ошибка. flib2.fll - рабочая. В чем может быть дело ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 12:26 |
|
||
|
FLL & COM DLL
|
|||
|---|---|---|---|
|
#18+
1 . pDispatch =SYS(3095,this) в коде 2 в методе инит принимает значение 0, по идее-то она должна вернуть указатель на Dispatch контрола. 2. При вызове: obj = CREATEOBJECT("comdll.Test") ? SYS(3095,obj) возвращает его IDispatch *. Тогда как получить IDispatch * моего контрола после его создания в самом методе моего контрола а не из вне ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 13:03 |
|
||
|
FLL & COM DLL
|
|||
|---|---|---|---|
|
#18+
Боюсь, что ничего не получится. В контекте com dll объекта _Vfp не существует :((. Можно организовать внутри класса некий интерфейс и передавать на него ссылку. Но только не this. Почитайте еще про соответсвующие SYS() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 13:45 |
|
||
|
FLL & COM DLL
|
|||
|---|---|---|---|
|
#18+
То Crip: Ага, это я понял, но ведь IDispatch объекта com dll vfp можно получить извне. Создать свойсво у компоненты и запихнуть объекту в его же свойсво, примерно так: obj = CREATEOBJECT("comdll.Test") obj.pDisp = SYS(3095,obj) Я это попробовал, значение указателя IDispatch дейсвительно формируется, но тот метод, который мне нужно дернуть валит приложение, а при попытке заюзать СOM как EXE зависает. Что странно. Метод сделал пустым, параметров у него нет. Из FLL дергаю так : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Вызываю так : RunComVFP(this.pDisp) this.pDisp - присвоил перед вызовом. И ничего. Либо приложение отрубается , ecли компонента лежит в DLL , либо зависает , если лежит в EXE. Такой же код, выполняет DoCmd для _vfp, естесно в несколько другой реализации. Что странно при использовании COM EXE, при попоытке снять VFP ругается что мол процесс ее занял и она может только переключится на его выполнение , а снятся, только через диспетчер. И как это добро бороть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 14:20 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32534541&tid=1596522]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 377ms |

| 0 / 0 |
