DLL を複数回ロードしてマルチスレッドをエミュレートします (このために設計されています)。LoadLibrary()
では実際には許可されていないため、DLL は および を介して自身を一時ファイルにコピーしGetTempPath()
ますGetTempFileName()
。
これは小さなファイルであり、スレッドが破棄されるとライブラリが解放され、一時ファイルが削除されます。現在の問題は、スレッドの数が構成可能であることです (マニアは 50、100、またはそれ以上を選択できます)。これは基本的に、不安定な実行、クラッシュ、および通常の「一時ファイルの削除」ルーチンを実行しないリスクを露呈します。
それらの一時ファイルをそこに残しておいても大丈夫ですか? OSは通常、それ自体をクリーンアップしますか? または、自動クリーンアップ ルーチンを作成する必要がありますか? はいの場合、別の一時ファイルを保存してそれらのファイルのリストを保持し、UAC 制限などに当たらないようにするにはどうすればよいですか?
何か案は?