ネイティブDLLがCOMモジュールから既にロードされているかどうか確認したいですか?私の目的は、適切なDLLがロードされているかどうかをチェックして、対応するメソッドを呼び出せるようにすることです。私はリンク "https://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies.aspx"を参照しましたが、助けにはなりませんでした。私のネイティブモジュールは、デバッグ中にVisual Studioの[Loaded Module]リストウィンドウに表示されませんが、[Enable native code debugging]を設定すると表示されます。同じコードで達成する方法はありますか?実行時にCOMモジュールからWIN32/Unmanaged DLLがロードされているかどうかを調べる
0
A
答えて
2
GetModuleHandle
にモジュール名を渡します。モジュールがプロセスにロードされている場合は、null以外の値が返されます。
0
私はこのように私の問題への解決策が見つかりました:
private bool IsNativDllLoaded(string dllName)
{
IntPtr module = GetModuleHandle(dllName);
return module != IntPtr.Zero;
}
関連する問題
- 1. javascript関数が既に実行されているかどうか調べる
- 2. rubyスクリプトがウィンドウで実行されているかどうかを調べる
- 3. 別の.netアセンブリがロードされているかどうかを調べる
- 4. OSXが24時間表示されているかどうかを調べる
- 5. Linuxプロセスが与えられた引数で実行されているかどうかをシェルスクリプトで調べる
- 6. TransactionScopeがコミットされているかどうかを調べる
- 7. PythonモジュールがGAE上で実行されているかどうかを調べるにはどうすればよいですか?
- 8. どのAsyncTaskが実行されているかを調べるには?
- 9. Excelが実行されているか調べる
- 10. 実行時に、モジュールまたはクラスがどこからロードされたかをチェックする方法は?
- 11. 実行時にどの依存関係がロードされているかを確認する(実行時に)
- 12. 実行時に別のサーバからモジュールをロードする
- 13. Visual StudioビルドでDLLがどこから来ているかを調べます。
- 14. シグナルハンドラコンテキストでコードが実行されているかどうかを調べるには?
- 15. 行列の行がベクトル化されてRでベクトル化されているかどうかを調べる
- 16. findOneのどの部分がORで実行されるかをどのようにして調べるかNodeJS
- 17. variabileが定義されているかどうかを調べる
- 18. Silverlight - 実行時にURIから画像がロードされない?
- 19. モジュールがdebianに完全にロードされた時期を調べる方法は?
- 20. 実行時にすべてのPRISMモジュールをロードするには?
- 21. three.js私のシーンがロードされたかどうかを調べる方法
- 22. emplace_hint使用時にアイテムが追加されたかどうかを調べる
- 23. クラスがインスタンス化されているかどうかを調べるには
- 24. サイトがセッションに設定されているかどうかを調べる
- 25. IPが使用されているかどうかを調べるには?
- 26. Symbian - デバイスがインターネットに接続されているかどうかを調べる
- 27. Microsoft Visual Studio:DLLがどこからロードされているかを調べるには?
- 28. プロセスがCで実行されているかどうかを調べる方法は?
- 29. LinuxのCプログラム:別のプログラムが実行されているかどうかを調べる方法
- 30. doctestでコードが実行されているかどうかを調べる方法は?
をありがとうございました。それは私を助けた。 :) –
このAPIコールは実際に[TOCTOU](https://en.wikipedia.org/wiki/Time_of_check_to_time_of_use)競合状態のために自分自身を設定しています。一方、[GetModuleHandleEx](https://msdn.microsoft.com/en-us/library/windows/desktop/ms683200.aspx)は、同じチェックを実行できますが、モジュールを増やすことによってメモリにロックしますその参照カウント。返されたハンドルは、その後の[GetProcAddress](https://msdn.microsoft.com/en-us/library/windows/desktop/ms683212.aspx)の呼び出しで安全に使用できます。 – IInspectable
@IInspectable:優秀な点ですが、COMの設計を考えると、それは必要ではないかもしれません。 ['DllCanUnloadNow(...)'](https://msdn.microsoft.com/en-us/library/windows/desktop/ms690368%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396)参照が残っているかどうかを判断するために使用されます。参照を取得することは、モジュールを生かし続けるために必要なすべてのものでなければなりません。 –