Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.02;
Скачать: CL | DM;

Вниз

Динамическая загрузка своей DLL, а не зарегистрированной в Window   Найти похожие ветки 

 
Николай В.   (2002-11-21 16:42) [0]

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


 
KoluChi ©   (2002-11-21 16:53) [1]

LoadLibrary(Path + "midas.dll");


 
KoluChi ©   (2002-11-21 17:03) [2]

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


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

LoadLibraryEx ?


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

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


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

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


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

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


 
Fantasist ©   (2002-11-22 00:22) [7]


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


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


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

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


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

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


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

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


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

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

uses MidasLib

не подойдет?

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



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

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

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


 
Slava ©   (2002-11-22 10:43) [13]

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

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

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


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

> Slava (22.11.02 10:43)

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

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



 
Slava ©   (2002-11-22 12:49) [15]

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



Страницы: 1 вся ветка

Текущий архив: 2002.12.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
14-4624
Anar
2002-11-11 18:40
2002.12.02
ASPack


14-4562
Ramzes
2002-11-11 15:22
2002.12.02
Delphi и 1C


1-4430
mazepa
2002-11-19 21:54
2002.12.02
exel


1-4340
wam
2002-11-22 03:49
2002.12.02
Polybezier по многим точкам


1-4389
AndrewB
2002-11-22 02:41
2002.12.02
Фокус ввода