У меня есть набор кода, написанного в VS 6. Я пытаюсь написать оболочку CLI для этого в VS 2008. Я включил один из заголовочных файлов VS6 в код CLI и скомпилировал.При компиляции получаюLNK2001: unresolved external symbol "public: virtual void __thiscall Someclass::SomeMethod(SomeObject& os)
.Когда я искал метод и класс в ошибке, он соответствует коду,
Файл заголовка.
class SomeClass: public ParentClass
{
virtual void SomeMethod(SomeObject& os);
}
Файл CPP
void SomeClass::SomeMethod(SomeObject& os)
{
//Implementation here
}
SomeMethod фактически переопределяется из ParentClass
Когда я делаю объявление в заголовочном файле, добавляя открытые и закрытые фигурные скобки как
virtual void SomeMethod(SomeObject& os) {};
, ошибка исчезает.Но я не могу этого сделать, так как это приведет к тому, что один метод будет иметь два тела.Почему это поведение?Как мне это преодолеть?Или мне нужно поместить #pragma при включении заголовков BS6 в CLI?