繁体   English   中英

我需要调用一个在一个应用程序中反复调用5个其他dll的dll

[英]I need to call a dll that is calling 5 other dlls repeatedly in one application

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

但是,后续的dll(SQLiteningClient.dll等)仍保留在调用过程中。 每当我尝试再次钩住SQLitening.dll时,它都会钩住,但是某些功能异常,例如查询远程数据库的功能。 我忍不住想,这是因为这些dll没有被正确释放。 每当我隐式地挂接dll(全局挂接每个函数)时,只要我将其始终保存在内存中,一切都可以正常工作。 但是,我需要明确地执行此操作。

注意:SQLitening的Fred Meier表示,显式链接在PowerBasic应用程序中工作良好。 我还应该注意,SQLitening是用PowerBasic编写的。

有没有办法为SQLitening.dll生成单独的进程或线程以将所有内容挂钩,以便在取消引用SQLitening时可以杀死该进程? 还是有一种特殊的方法来确保SQLitening调用的所有内容都被正确地取消引用? 谢谢。

-马特·菲尔普斯(Matt Phelps)

-分辨率系统

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

只是解开钩子,或者在钩子之前检查函数是否已经被钩住。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM