Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическая загрузка своей DLL, а не зарегистрированной в Window [D6, WinXP]


Николай В. ©   (2002-11-21 16:42:00) 

Мастера!!! Помогите пожалуйста справиться с такой проблемой...
Есть dll версии 5, которая зарегистрированна в Windows (в реестре). Некоторые программы работают с ней, т.е. она нужна.
Есть моя программа, которая работает с такой dll, но версии 6. С версией 5 она не работает - падает с потерей данных.
Так вот, при запуске программы загружаестя та dll (5), а мне нужно загрузить свою (6).
Как можно загружать именно (6) вместо зарегистрированной (5) на момент выполнения программы? (может быть LoadLiblary, но я не знаю вызовов). Как?
Отрегистрировать ту и зарегистрировать свою не очень подходит (нужна и та и та).
Если кому интересно что за dll, то это midas.dll.
Зарание спасибо.


Slava   (2002-11-22 12:49:00) [1]

Большое пожалуйста :о)


Николай В.   (2002-11-22 11:10:00) [2]

> Slava (22.11.02 10:43)

Ничего не надо, просто сделай uses MidasLib и все!

Большое спасибо, Slava. Все работает!!! И ни какие регистрации, переригистрации midas.dll не нужны.
Благодарю за помощь.


Slava   (2002-11-22 10:43:00) [3]

> Николай В. (22.11.02 10:37)

А вот вариант с MidasLib не пробовал. Что в MidasLib? То же, что и в midas.dll? А не будет как с LoadLibrary? (я ведь не знаю вызовов, чтобы явно указать).

Ничего не надо, просто сделай uses MidasLib и все!


Николай В.   (2002-11-22 10:37:00) [4]

Спасибо. Да, действительно, если заменить ту на мою в каталоге Windows, то все ОК, но одна программа работает с midas.dll версии 5, и одновременно должна работать моя (версии 6), то как?
И если она уже загружена, то ее не подмениш.

А вот вариант с MidasLib не пробовал. Что в MidasLib? То же, что и в midas.dll? А не будет как с LoadLibrary? (я ведь не знаю вызовов, чтобы явно указать). Спасибо.


Slava   (2002-11-22 10:19:00) [5]

А вариант, когда midas можно использовать, подключив в uses:

uses MidasLib

не подойдет?

Тогда midas.dll не нужна.


Reindeer Moss Eater   (2002-11-22 09:52:00) [6]

Хотя если на момент когда потребовалась твоя DLL кем-то уже загружена старая версия, то это не поможет


Reindeer Moss Eater   (2002-11-22 09:50:00) [7]

Положи свою DLL в каталог, который Windows просматривает первым при поиске DLL


Николай В.   (2002-11-22 09:45:00) [8]

Не могу утверждать по поводу ХР или 98, но то, что он все же берет 5 вместо моей - 6, это да. Я не знаю когда идет обращение к midas.dll. Загрузка моей dll игнорируется и работаем все равно с 5.
Как это можно обойти?


Fantasist   (2002-11-22 00:22:00) [9]


> Но не работает LoadLibrary и LoadLibraryEx тоже


Почему не работают? Как это не работают? Что в WinXP уже и библиотеки динамически загружать нельзя?


Marcus   (2002-11-21 17:58:00) [10]

А нет ли конфликта GUIDов, если они от версии 5 к 6 не изменились? Ведь midas.dll - COM сервер, а в системе может быть зарегистрирован только один COM-сервер из нескольких с одинаковым набором интерфейсов


Николай В.   (2002-11-21 17:46:00) [11]

Спасибо за совет. Но не работает LoadLibrary и LoadLibraryEx тоже. Может быть я не правильно что-то делаю? Как правильно использовать функцию?


Николай В.   (2002-11-21 17:26:00) [12]

Почему не работает загрузка в ХР?


Игорь Шевченко   (2002-11-21 17:10:00) [13]

LoadLibraryEx ?


KoluChi   (2002-11-21 17:03:00) [14]

Sorry в XP наверное не прокатит.


KoluChi   (2002-11-21 16:53:00) [15]

LoadLibrary(Path + "midas.dll");


Наверх

Титульная страница Поиск, карта сайта Написать письмо