1

この質問の検索方法がわからないので、質問しました。

たとえば、3 つのクラスを含むプロジェクトがあるとします。


Class A
{
   int doSomething();
}

// Depends on A.
Class B
{
 A objA; 
}

// Depends on nothing
Class C
{
   void Terminate();
}

そして、これら 3 つのクラスを含む静的ライブラリを作成します。.lib ファイルを実行可能ファイルにリンクすると、次のようになります 1) 2)

  1. そのライブラリ内のすべてのクラスが実行可能ファイルに参加しています(A、B、C)
  2. それとも、使用されているクラス(およびその依存関係) だけですか? (A、B、C ではありません)

void main()
{
 B b;
 b.doSomething();
}
4

1 に答える 1

0

静的リンクは、必要なクラス/関数がどのライブラリから、どのファイルの場所にあるかを記録します。main() には、マップされた位置オフセット以外のコードはありません。
通常、これは次のようになります。

main(){
  compiled_library.dll 0x01234ABC <- offset in file
}
于 2012-09-03T06:03:19.903 に答える