У меня есть две DLL a.dll и b.dll, и в каждой из них есть один класс AClass и BClass.
Я хотел бы, чтобы и AClass, и BClass наследовали и реализовывали один и тот же интерфейс AbsBase, который является чисто абстрактным классом.
В каждом классе я настраивал #defines для __declspec (dllimport) и __declspect (dllexport). Когда я пытаюсь скомпилировать, я получаю это:
предупреждение C4275: не интерфейс класса dll 'AClass', используемый в качестве базы для класса интерфейса dll 'AbsBase'
, который в основном хочет, чтобы я объявил AbsBase как __declspec (dllexport)
Но если компилятор будет по-своему, я должен объявить, что AbsBase экспортируется как из a.dll, так и из b.dll.
Почему интерфейс класса необходимо экспортировать?
Есть ли способ обойти это?
я действительно должен экспортировать AbsBase из обеих DLL? разве с этим что-то не так? (Мне нужно определить новый макрос XXX_EXPORT ..)