![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||||||
|
|||||||
![]() Вопрос относительно использования технологии Plug-in в Delphi
вот код интерфейснго модуля Код:
код простейшего plug-in в DLL Код:
а вот тестовый пример использующий этот плагин Код:
Если в кратце описать, что делает этот плаг - преобразует внутренний формат файла в формат HTML. Дак вот проблема в том , что когда я вызываю из тестового примера FreeLibrary(hPlugIn); прога вылетаеет с AV Цитата:
|
#2
|
|||
|
|||
![]() Вопрос, а она выполняет конвертацию-то?
Собственно, где проверки на то, что либа загрузилась и получен правильный адрес функции. Это раз. во вторых, мне, например, в принципе не нравится то, что сдесь смешаы 2 технологии - обычная DLL и COM. Советую выбрать что-либо одно. Может быть именно из-за этого все и происходит - у тебя обнуляется счетчик ссылок в finally и система может успеть выгрузить либу. |
#3
|
|||
|
|||
![]() проверки есть, длл отрабатывает, AV выскакивает привыгрузке длл,
я по ошибке вижу что пытаюсь достучаться до несуществующего адреса (метода) а вот где это происходит немогу понять. |
#4
|
|||
|
|||
![]() можно закрывать топик, проблема решена
в строке "Convertor.Init(FileName,TAPI.Create);" может быть неявная переменная, которая освобождается после FreeLibrary. это и вызывало ошибку, ну еще поменял тип string на WideString, теперь окончательный вариант выглядит следующим образом: Код:
|