Tôi có hai tệp DLL a.dll và b.dll và trong mỗi tệp tôi có một lớp AClass và BClass.
Tôi muốn có cả AClass và BClass kế thừa và triển khai cùng một giao diện AbsBase là lớp trừu tượng thuần túy.
Trong mỗi lớp, tôi thiết lập #defines cho __declspec (dllimport) và __declspect (dllexport). Khi tôi đang cố gắng để biên dịch tôi có được điều này:Lớp cơ sở thuần túy cần được xuất từ DLL?
C4275 cảnh báo: không dll giao diện lớp 'Aclass' được sử dụng làm cơ sở cho lớp dll giao diện 'AbsBase'
mà về cơ bản muốn tôi tuyên bố AbsBase như __declspec (dllexport)
Nhưng nếu trình biên dịch sẽ có nó theo cách của mình, tôi sẽ phải tuyên bố AbsBase được xuất khẩu từ cả hai a.dll và b.dll.
Tại sao giao diện của lớp cần được xuất?
Có cách nào xung quanh nó không? tôi có nên thực sự xuất AbsBase từ cả hai tệp DLL? không phải là có một cái gì đó vốn đã sai với điều này? (Tôi sẽ cần phải xác định một macro XXX_EXPORT mới ..)
Bạn có thể tạo một tệp DLL thứ ba không? – jmucchiello
hiển thị cho chúng tôi bảng kê giao diện và lớp học của bạn. –