1

アンマネージC++プロジェクトがあり、リンカーライブラリ([プロパティ]->[リンカー]->[入力]->[追加の依存関係])が特定の順序でリストされているとランタイムエラーが発生しますが、ライブラリの順序を変更すると正常に実行されます。順序がリンクエラーを引き起こす可能性がある理由(ライブラリがリンクされている順序がGCCでエラーを引き起こすことがあるのはなぜですか?)を理解していますが、実行時エラーを引き起こす可能性があるのはなぜですか?私はこれをVS2005、2008、2010で観察しました。

4

1 に答える 1

1

実行時エラーにはどのようなものがありますか? あなたは言わないので、推測する必要があります。

実行時エラーが発生する可能性のある 1 つの方法を次に示します。関連のない 2 つのライブラリが、たまたま同じ名前を持つ異なる関数を公開している場合、リンカーは最初に見つかった実装を選択します。

draw()から呼び出すつもりでしたpaint.libが、リンカー リストの前にある場合は、予測できない結果を伴うgunfight.lib間違った呼び出しを行うことになります。draw()

于 2013-03-13T11:37:24.130 に答える