c++ - 我需要在一个应用程序中调用一个重复调用 5 个其他 dll 的 dll

标签 c++ dll explicit

我目前在调用 SQLitening.dll 的 C++ 应用程序中使用 SQLitening (www.sqlitening.com)。 SQLitening.dll 对 SQLiteningClient.dll、Zlib.dll 和 SQLite3.dll 进行后续调用。我显式 Hook SQLitening.dll,执行一些函数,然后关闭连接并使用 FreeLibrary 取消引用 dll。

但是,后续的 dll(SQLiteningClient.dll 等)仍然 Hook 到调用进程。每当我再次尝试 Hook SQLitening.dll 时,它都能正常 Hook ,但某些函数行为不正常,例如查询远程数据库的函数。我不禁认为这是因为那些 dll 没有被正确释放。每当我隐式 Hook dll(全局 Hook 每个函数)时,只要我一直将它保存在内存中,一切都会正常工作。但是,我需要明确地执行此操作。

注意:SQLitening 的 Fred Meier 说显式链接在 PowerBasic 应用程序中运行良好。我还应该注意到,SQLitening 是用 PowerBasic 编写的。

有什么方法可以为 SQLitening.dll 生成一个单独的进程或线程来 Hook 所有内容,这样当我取消引用 SQLitening 时,我就可以终止该进程吗?或者是否有一种特殊的方法来确保 SQLitening 调用的所有内容都被正确取消引用?谢谢。

-马特菲尔普斯

-分辨率系统

最佳答案

我通过使用显式加载 dll 的 COM exe 解决了这个问题。

关于c++ - 我需要在一个应用程序中调用一个重复调用 5 个其他 dll 的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3679312/

相关文章:

c++ - Visual Studio编译错误查找文件

c++ - 类的多态性和封装

c++ - c++中非void return函数模板的显式方法

c++ - 构造函数中的数组

c++ - restbed动态资源发布

windows - WinDbg Dr. Watson minidump - 需要最初为安装版本构建的 pdb/dll?

c - 在 Windows XP 上运行应用程序时出现 "The specified procedure could not be found"错误(异常 c0000139)

c# - 如何将 .tlb 作为资源文件嵌入到 .NET 程序集 DLL 中?

c++ - 隐式转换为显式 bool 类型以对容器进行排序?

c++ - 为什么 std::pair 在赋值中调用显式构造函数