Форум: "Начинающим";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];
ВнизДЛЛ-и, которых много. Найти похожие ветки
← →
Юрий_К (2006-03-17 17:45) [0]Использую ДЛЛ-и (http://oi.stellent.com), которые парсят документы различных форматов. За каждый формат практически отвечает своя ДЛЛ. Инициализируется всё это дело процедурой DAInit. Сейчас все эти ДЛЛ-и свалены в директорию, где основная программа. Есть желание для этого создать отдельную директорию, куда эти ДЛЛ-и и положить. Что нужно сделать, чтобы эти ДЛЛ-и находились? Что-то прописать нужно в реестре, название этой директории к примеру, или ещё что возможно? Какие решения известны на эту тему?
← →
Ega23 © (2006-03-17 18:04) [1]Во-первых, можно полный путь к DLL указывать, а вычислить его - легче простово (если это поддиректория в основной директории проекта) - ExtractFilePath(ParamStr(0)+"DLL\"+Имя_DLL).
Во-вторых - положить туда, куда переменная Path смотрит, например в %SystemRoot%\System32
← →
Юрий_К (2006-03-17 18:49) [2]"Во-первых, можно полный путь к DLL указывать"
"Во-вторых - положить туда, куда переменная Path смотрит, например в %SystemRoot%\System32"
Допустим, остановимся на том, что кладём в собственную директорию, а не в системную. Как дополнить эту переменную Path программно? Это в реестре что изменить/дополнить следует?
А отдельно не существует какой функции, что программа должна смотреть и в такую-ту директорию ещё, если не нашла ДЛЛ-и?
← →
Eraser © (2006-03-17 18:54) [3]
> Юрий_К (17.03.06 18:49) [2]
НЕЛЬЗЯ надеяться на веременные окружения при подключении библиотеки. Нужно указывать полный путь.
← →
Desdechado © (2006-03-17 22:17) [4]> НЕЛЬЗЯ надеяться
почему? их межно самому дополнять при старте программы, только смысла не вижу
проще линковать динамически
← →
tesseract © (2006-03-17 22:22) [5]
> НЕЛЬЗЯ надеяться на веременные окружения при подключении
> библиотеки. Нужно указывать полный путь.
А кто отменил FileExists ?
← →
Юрий_К (2006-03-24 18:23) [6]Всё сложнее:
http://forum.sources.ru/index.php?act=ST&f=4&t=137414
"
Использую ДЛЛ-и (http://oi.stellent.com), которые парсят документы различных форматов. За каждый формат практически отвечает своя ДЛЛ. Сейчас все эти ДЛЛ-и свалены в директорию, где основная программа. Есть желание для этого создать отдельную директорию, куда эти ДЛЛ-и и положить. Что нужно сделать, чтобы эти ДЛЛ-и находились? Какие решения известны на эту тему?
Работа с этими ДЛЛ-ями ведётся через ДЛЛ, написанную на VC. А она уже используется программой, написанной на Delphi. Используются модули sccda.lib и sccca.lib от stellent и есть так же sccda.h и sccca.h, включаю их в проект. Попробовал мою ДЛЛ положить в ту отдельную директорию со всеми ДДЛ-ми от stellent и указываю в основной программе, где лежит моя ДЛЛ. При запуске программы сообщается, что динамически подключаемая sccda.dll не найдена.
В добавок из Хелпа
"
What You Need in Your Source Code
Any source code that uses this product should #include the file sccca.h (for Content Access) and/or sccta.h (for Text Access) and #define WINDOWS and WIN32. For example, a Windows NT application might have a source file with the following lines:
#define WINDOWS /* Will be automatically defined if your
compiler defines _WINDOWS */
#define WIN32
#include <sccca.h> /* If using ContentAccess */
#include <sccta.h> /* If using Text Access */
The developer’s application should be linked to the Content Access (and/or Text Access) and Data Access DLLs through the provided libraries (sccta.lib, SCCca.LIB and SCCDA.LIB).
"
"
← →
Юрий_К (2006-03-24 18:26) [7]"Desdechado © (17.03.06 22:17) [4]
> НЕЛЬЗЯ надеяться
почему? их межно самому дополнять при старте программы, только смысла не вижу
проще линковать динамически"
Поподробнее нельзя ли? Не понял ответа.
← →
Юрий_К (2006-03-24 18:34) [8]Всё сложнее:
То есть лично я не прописываю путь для каждой из 189 файлов от stellent. Я лишь подключаю два lib файла в проект и указываю в опциях VC6 путь диркектории include c файлами *.H, в которых декларируются прототипы функций. В них я не нашёл ничего, для указания точного пути для ДЛЛ-ей.
← →
Leonid Troyanovsky © (2006-03-24 19:32) [9]
> Юрий_К (24.03.06 18:34) [8]
> То есть лично я не прописываю путь для каждой из 189 файлов
> от stellent. Я лишь подключаю два lib файла в проект и указываю
> в опциях VC6 путь диркектории include c файлами *.H, в которых
> декларируются прототипы функций. В них я не нашёл ничего,
> для указания точного пути для ДЛЛ-ей.
В XP/2k3 есть SetDllDirectory.
Ну, а на худой конец есть еще SetCurrentDirectory.
Во-всяком случае, это не хуже, чем хардкодить имена.
Ну, и можно попробывать грузить сишную библиотеку
путем LoadFileEx with LOAD_WITH_ALTERED_SEARCH_PATH,
указав полный путь к ней (ее нужно покласть в ту же
директорию, что и остальные).
--
Regards, LVT.
← →
Leonid Troyanovsky © (2006-03-24 19:35) [10]
> Leonid Troyanovsky © (24.03.06 19:32) [9]
> Ну, и можно попробывать грузить сишную библиотеку
> путем LoadFileEx
Фу-ты, LoadLibraryEx. Sorry.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c