Я просто экспериментирую со смешиванием статической библиотеки C ++ (которая использует MFC) и приложения WinForms на C ++ / CLI.Когда я пытаюсь включить свой NativeClass.h, компиляция приложения C ++ / CLI завершается неудачно, потому что он не понимает AFX_EXT_CLASS
, используемый для экспорта класса для библиотеки.
Просто чтобы заставить его работать, я смогчтобы собрать собственную библиотеку, затем удалите AFX_EXT_CLASS
из заголовка, затем соберите C ++ / CLI, связанный с собственной библиотекой.Приложение C ++ / CLI запустится, появится диалоговое окно и выведет какое-то фиктивное значение из моего метода NativeClass :: NativeFunction ().Кажется, все работает отлично, за исключением того, что я не могу собрать приложение C ++ / CLI без удаления AFX_EXT_CLASS
.Есть идеи, как заставить это работать без необходимости редактировать заголовок?Я бы предпочел пошаговую сборку.
// NativeClass.h
class AFX_EXT_CLASS NativeClass {
public:
NativeClass();
~NativeClass();
int NativeFunction();
};
Это ошибка, которую я получаю при сборке приложения C ++ / CLI, когда AFX_EXT_CLASS
находится в заголовке:
NativeClass.h(3): error C2470: 'NativeClass' : looks like a function definition, but there is no parameter list; skipping apparent body