現在、SQLitening.dllを呼び出しているC ++アプリケーションでSQLitening(www.sqlitening.com)を使用しています。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が呼び出すすべてのものが適切に逆参照されていることを確認する特別な方法はありますか?ありがとう。
-マットフェルプス
-解決システム