[解決済み] 静的ライブラリ、静的にリンクされたダイナミックライブラリ、動的にリンクされたダイナミックライブラリの.libファイルの中身は何ですか?
質問
静的ライブラリ、静的にリンクされたダイナミックライブラリ、動的にリンクされたダイナミックライブラリの.libファイルの中身は何ですか?
動的リンクされたダイナミック ライブラリでは .lib ファイルは必要なく、静的リンクでは .lib ファイルはすべてのメソッドを含む .obj ファイルに過ぎないというのはどういうことでしょうか。これは正しいのでしょうか?
どのように解決するのですか?
静的ライブラリの場合、.lib ファイルにはライブラリのすべてのコードとデータが含まれています。次に、リンカーは必要なビットを識別し、最終的な実行ファイルにそれらを配置します。
動的ライブラリの場合、.lib ファイルには、ライブラリからエクスポートされた関数とデータ要素のリスト、およびそれらがどの DLL から来たかについての情報が含まれています。リンカーが最終的な実行ファイルを構築するとき、ライブラリからの関数またはデータ要素のいずれかが使用されると、リンカーは DLL への参照を追加し (Windows によって自動的にロードされるようにします)、実行ファイルのインポート テーブルにエントリを追加して、関数への呼び出しがその DLL にリダイレクトされるようにします。
ダイナミック ライブラリを使用するために .lib ファイルは必要ありませんが、これがないと DLL からの関数をコード内の通常の関数として扱うことができません。代わりに、手動で
LoadLibrary
を手動で呼び出して DLL を読み込ませる必要があります (そして
FreeLibrary
を実行します)、そして
GetProcAddress
を使って、DLL 内の関数またはデータ項目のアドレスを取得します。そして、返されたアドレスを使用するために、適切な関数へのポインタにキャストする必要があります。
関連
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] コンパイル済み実行ファイルにDLLを埋め込む
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】スタティックリンクとダイナミックリンクの比較
-
[解決済み】共有オブジェクト(.so)、静的ライブラリ(.a)、DLL(.so)の違い?)
-
[解決済み】「静的リンク」「動的リンク」の意味とは?
-
[解決済み] ライブラリを静的にリンクするようにgccに直接指示する
-
[解決済み] 共有ライブラリを動的リンクした場合、共有ライブラリ内のグローバル変数とスタティック変数はどうなりますか?
-
[解決済み】ライブラリ?静的?ダイナミック?それともフレームワーク?プロジェクトの中に別のプロジェクトがある
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された