![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическая загрузка своей 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");