Visual Studio Express 2008のmain関数を入力する前に、Visual C++プログラムがdllをロードするにはどうすればよいですか?他の人が開発したプロジェクトでは、dllは "a.ext:native"によってロードされましたが、どのように設定されているのかわかりません。Visual C++でmain()関数を入力する前にロードするdllの管理方法
3
A
答えて
2
OSにDLLのロードを指示する方法はいくつかあります。最も一般的な方法は、(プロジェクトのリンカ設定を使用して).libファイルにリンクすることです。ここで、.libはDLLに関連付けられたビルド時のスタブです。リンカーがリンク段階でこの.libファイルを見つけたら、DLLが必要であることを認識し、内部でEXEを変更して、プログラムを実行するためにDLLが存在する必要があることをオペレーティングシステムに通知します。
プログラムが後で実行されるとき、オペレーティングシステムは最初に、プログラムのコードの実行を開始する前に、必要なすべてのDLLを探します。これらのDLLのいずれかが見つからない場合、オペレーティングシステムはエラーをスローし、エラーボックスがポップアップし、プログラムは実行されません。
DLLを動的にロードすることもできますが、これはすべて一般的なことではありません。
関連する問題
- 1. EEFileLoadException管理DLLにC++ DLLをロードするとき
- 2. main関数に入る前に、C++で何かを印刷できますか?
- 3. 複数の.NETプロジェクトで共通DLLのバージョン管理を管理する方法
- 4. DLL(管理対象および非管理対象)内の関数のリストを取得する方法は?
- 5. C#でロードされたC#DLLで例外を処理する方法
- 6. C++のDLLをC#のVisual Studioにリンクする方法2015
- 7. C++サードパーティのDLLファイルを動的にロードする方法
- 8. C#アプリケーションでC++ DLL関数を呼び出すときにコンテキストエラーからロードを修正する方法
- 9. 入力ツールチップを他の入力の前にする方法は?
- 10. c dll関数をc#にインポートする
- 11. msvr71.dll(Microsoft Visual C++ランタイムDLL)を配布する方法
- 12. 先行入力jquery関数へのリクエストでアポストロフィを処理する方法
- 13. 複数のDLLリソース管理
- 14. cygwin C++ dllをロードし、クラス関数を呼び出す
- 15. Visual C#関数でオプションのパラメータを追加する方法?
- 16. Python mrjob mapreduce入力ファイルを前処理する方法
- 17. 複数のgitバージョン管理リポジトリを管理する方法は?
- 18. 管理DLLのネイティブコードを再初期化する方法
- 19. Objective-Cでは、main()関数で 'self'を使う方法は?
- 20. 2つの入力を関数にバインドする方法
- 21. このDLL関数をC++/Cから呼び出す方法
- 22. unity3dに管理DLLを追加する
- 23. Windowsストア/ユニバーサルアプリケーションでロードするDLLの依存関係を特定する方法
- 24. 管理対象C++/CLIでインターフェイスを定義する方法
- 25. Visual SourceSafeでバージョンを管理する方法は?
- 26. themidia仮想C++ DLL関数は、名前
- 27. Visual Studio 2015ツールバーのコンボ、ユーザーが正しく入力した値を管理する方法?
- 28. Visual Studioのアセンブラ出力で名前をデマングルする方法は?
- 29. MKL v9.xを管理対象のC++ DLLに静的にリンクしてFFTを計算する方法は?
- 30. MavenとDLLの依存関係を管理する
DLLを動的にロードするのは、実際にはかなり一般的です。 1)プラグインシステム、2)旧バージョンとの下位互換性を維持しながら、新しいバージョンのWindowsでのみ使用できる追加機能をサポートする2つの一般的な使用例があります(例えば、定義されたDWM API 'dwmapi.dll'にあります)。 –
十分に公正な - 私は自分自身のDLLの動的な読み込みの多くをやった。私の印象以外に、静的に、動的に、または読み込まれたDLLのうち、何パーセントのDLLが読み込まれているかわかりません。 –
私の質問は本当に静的な読み込みについてです。どのDLLが.libで制御されているのですか?ソースコードや設定を通して? – Shengyan