Като разширение на въпрос MSVC неразрешени изпълними файлове за свързване на външни символи. A
съдържа и клас P
с две функции-членове F
и G
, а също така съдържа глобален 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();
}
Мога да поставя точка на прекъсване в T
на реда, където извиква F
във Visual Studio 2008, но когато натисна бутона за влизане или преминаване, получавам изключение 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
, за да мога да вляза в него и да намеря грешката? (Или ако нещо е свързано смешно, което причинява грешката?)