質問の延長としてMSVC unresolved external symbol linking executables。 A
が含まれ、2つのメンバ関数F
およびG
を持つクラスP
があり、グローバルP MyP
も含まれています。私は関数MyP.F
を実行ファイルT
から呼び出しようとしています。私はついにリンク部分を過ぎましたが、今は実行時に例外を伴って失敗します。静的ライブラリ呼び出しのアクセス違反
A.cpp
struct P {
void F();
void G();
} MyP;
P::F() {
}
P::G() {
}
int main() {
MyP.F();
MyP.G();
}
T.cpp
struct P {
void F();
void G();
} MyP;
int main() {
MyP.F();
MyP.G();
}
私はそれは、Visual Studio 2008でF
を呼び出す行でT
にブレークポイントを置くことができますが、私はボタンを押したときにステップインまたはステップオーバーすると、例外First-chance exception at 0xfe5ca589 in A.exe: 0xC0000005: Access reading location 0xfe5ca589
が発生します。私は、コールスタックを見ると、それは以下の
[フレームが不正確および/または不足しているかもしれ
fe5ca589()
A.EXE!G()+ 0x60a6バイトを示し、何の記号はAのロードされていませんexeファイル]
どちらのプロジェクトは、同じVisual Studioのソリューションの一部であり、そしてA
が正しくT
のための依存性として設定され、かつ正確にリンクしているようだが、私はそれにステップすることはできません。誰も洞察力を持ってVisual StudioにA
のシンボルをロードさせるので、私はそれにステップインしてエラーを見つけることができますか? (何かがおかしい、エラーの原因とリンクされている場合か?)
http://stackoverflow.com/questions/6283482/c-cli-use-loadlibrary-getprocaddress-with-an-exe –