Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
ВнизДинамическая загрузка своей 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c