我正在开发Visual Studio项目
header.h
class A
{
virtual int __cdecl funct1() = 0;
};
项目B(在编译时生成DLL)
//projectBheader.h
#include<header.h>
#define projectBclass_DLL __declspec( dllexport )
class projectBclass_DLL projectBclass: public A
{
virtual int __cdecl funct1();
}
//projectBheader.cpp
A::int __cdecl projectBclass::funct1()
{
//definition goes here
}
但是它给出了错误
error C2695: 'projectBclass::funct1': overriding virtual function differs
from 'A::funct1' only by calling convention
提前致谢
答案 0 :(得分:1)
也许您必须使用public
访问修饰符。
只是一个疯狂的猜测,但也许你有一个可访问性问题,而不是调用约定问题。我很惊讶地看到一个人可以出口私人班级成员,但也许你毕竟不能? (如果我错了,请纠正我)
根据MSDN,“要导出类中所有公共数据成员和成员函数,关键字必须显示在类名称的左侧...”你做到了。 但是,默认范围是私有的。