VSTGUI:开端

开始了带界面的VST的编写。遇到问题:

1>------ 已启动生成:  项目: Comparoma, 配置: Debug Win32 ------
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall ACompressor::setProgram(int)" (?setProgram@ACompressor@@UAEXH@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall ACompressor::setProgramName(char *)" (?setProgramName@ACompressor@@UAEXPAD@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall ACompressor::getProgramName(char *)" (?getProgramName@ACompressor@@UAEXPAD@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall ACompressor::setParameter(int,float)" (?setParameter@ACompressor@@UAEXHM@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual float __thiscall ACompressor::getParameter(int)" (?getParameter@ACompressor@@UAEMH@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall ACompressor::getParameterName(int,char *)" (?getParameterName@ACompressor@@UAEXHPAD@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall ACompressor::getParameterLabel(int,char *)" (?getParameterLabel@ACompressor@@UAEXHPAD@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall ACompressor::getParameterDisplay(int,char *)" (?getParameterDisplay@ACompressor@@UAEXHPAD@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall ACompressor::getEffectName(char *)" (?getEffectName@ACompressor@@UAE_NPAD@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall ACompressor::getVendorString(char *)" (?getVendorString@ACompressor@@UAE_NPAD@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall ACompressor::getProductString(char *)" (?getProductString@ACompressor@@UAE_NPAD@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall ACompressor::getProgramNameIndexed(int,int,char *)" (?getProgramNameIndexed@ACompressor@@UAE_NHHPAD@Z)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall ACompressor::getVendorVersion(void)" (?getVendorVersion@ACompressor@@UAEHXZ)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual enum VstPlugCategory __thiscall ACompressor::getPlugCategory(void)" (?getPlugCategory@ACompressor@@UAE?AW4VstPlugCategory@@XZ)
1>ACompressor.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall ACompressor::resume(void)" (?resume@ACompressor@@UAEXXZ)
1>vstplugmain.obj : error LNK2019: 无法解析的外部符号 "class AudioEffect * __cdecl createEffectInstance(int (__cdecl*)(struct AEffect *,int,int,int,void *,float))" (?createEffectInstance@@YAPAVAudioEffect@@P6AHPAUAEffect@@HHHPAXM@Z@Z),该符号在函数 _VSTPluginMain 中被引用
1>F:\Documents\Visual Studio 2013\Projects\Comparoma\Debug\Comparoma.dll : fatal error LNK1120: 16 个无法解析的外部命令
========== 生成:  成功 0 个,失败 1 个,最新 0 个,跳过 0==========

是我声明了虚函数又不实现产生的。

还有一个错误:

// ACompressor* createEffectInstance(audioMasterCallback audioMaster)
AudioEffect* createEffectInstance(audioMasterCallback audioMaster)
{
	return new ACompressor(audioMaster);
}

还有导出来dll不被识别的问题,查到2点多没查出来,今天继续查,原来是模块定义文件没有设置。在工程属性→链接器→输入 里面,模块定义文件配置为.\vstplug.def。太惨了。

下一步将加入控件,对效果器参数进行修改。

你可能感兴趣的:(音频,C/C++笔记,编程笔记)