私は管理されていないDLLを呼び出すC#コードを持っています。dllの存在を確認する方法
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
このコードは、多数のユーザーを対象とする別のアプリケーションで使用されるWindowsフォームコントロールソリューションに存在します。
DllImport
属性は、システム上でdllを探し、見つかった場合はextern
関数をそれとペアにします(ほとんど私はextern
がC言語でどのように動作するかを知っています)。
このDLLがユーザーのシステムで確実に検出されるようにするにはどうすればよいですか?私はそれを私のアプリケーションにバンドルする必要があります(私はその方法を知っています)? Windows *に含まれているので、それが存在することは確実ですか?
*私が見つからないため、Windows XPのDLLと古いのクラッシュ多くのアプリケーションを見てきましたので、私は本当にその引数を信用していません。
この質問をチェックしましたか? http://stackoverflow.com/questions/2292578/check-if-a-dll-is-present-in-the-system ユーザーのコンピュータにDLLが存在するかどうかを確認するために使用できるコードが含まれています。 – Alex
これはXP以降の[Windows/IEの一部としてMSDNに記載されている機能](https://msdn.microsoft.com/library/ms775125)の特別なケースです。サポートされなくなった長いバージョンのWindowsでコードを実行することを期待している場合を除き、この*特定の*関数は常に存在すると期待できます。 *一般的な質問はもっと複雑です。 –