【发布时间】:2020-12-30 18:59:19
【问题描述】:
我是 C++ 新手。我已经下载了this project,当我尝试运行它时,我得到:
Severity Code Description Project File Line Suppression State
Error C2695 'TFruityGain::Idle': overriding virtual function differs from 'TCPPFruityPlug::Idle' only by calling convention FruityGain_VC c:source\c\fruitygain_vc\gain.h 38
C++ 类:
class TFruityGain : public TCPPFruityPlug {
private:
public:
virtual void _stdcall Idle();
};
class TCPPFruityPlug : public TFruityPlug {
// some audio properties
TAudioRenderer AudioRenderer;
// temp buffer
PWAV32FM ProcessTempBuffer;
int MaxProcessLength;
float PitchMul;
TFruityPlugHost *PlugHost;
virtual void Idle();
};
【问题讨论】:
-
从
TCPPFruityPlug中完全删除virtual void Idle();行。该行声明了一个逻辑上独立的 new 虚拟方法。我假设你想覆盖TFruityGain::Idle,在这种情况下你不需要TCPPFruityPlug的类定义中的任何东西,因为C++不需要显式的override(尽管你应该使用它:en.cppreference.com/w/cpp/language/override) -
我认为您需要在
TFruityGain和TCPPFruityPlug中的某个函数中添加或删除_stdcall。 -
请先搜索错误信息,在这种情况下还要搜索 Cxxxx 错误代码。
-
如果您使用的是C++11或更高版本,您应该将
TFruityGain中的virtual void _stdcall Idle();更改为void Idle() override; -
@UlrichEckhardt 我做了,但我不明白,它是一个示例项目,我希望它能够工作,如果有任何问题,它会是配置的东西。
标签: c++