Мне нужно вызвать DLL, которая вызывает 5 других DLL неоднократно в одном приложении - PullRequest
1 голос
/ 09 сентября 2010

В настоящее время я использую SQLitening (www.sqlitening.com) в приложении C ++, где я вызываю SQLitening.dll.SQLitening.dll делает последующие вызовы SQLiteningClient.dll, Zlib.dll и SQLite3.dll.Я перехватываю SQLitening.dll явно, выполняю несколько функций, а затем закрываю соединение и разыменую dll с помощью FreeLibrary.

Однако последующие dll (SQLiteningClient.dll и т. Д.) Остаются подключеннымивызывающий процесс.Всякий раз, когда я пытаюсь перехватить SQLitening.dll, он перехватывает нормально, но некоторые функции работают неправильно, например, функция для запроса удаленной базы данных.Я не могу помочь, но думаю, что это потому, что эти библиотеки не являются бесплатными.Всякий раз, когда я неявно перехватывал dll (перехватывая каждую функцию глобально), все работало нормально, пока я все время держал это в памяти.Однако мне нужно сделать это явно.

Примечание: Фред Мейер из SQLitening сказал, что явное связывание отлично работает в приложении PowerBasic.Я также должен отметить, что SQLitening был написан на PowerBasic.

Есть ли способ порождать отдельный процесс или поток для SQLitening.dll, к которому можно подключить все, чтобы при разыменовании SQLitening я мог просто убить этот процесс?Или есть специальный способ убедиться, что все, что вызывает SQLitening, правильно разыменовывается?Спасибо.

-Мат Фелпс

-Резолюция систем

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Я решил проблему, просто используя COM-файл, который явно загружает DLL.

0 голосов
/ 11 октября 2010

Просто отцепите крючки или проверьте, подключена ли функция, прежде чем подключать ее.

...