如何在Windows上正确编译RtMidi API



我在visual studio 2019上使用C++,在尝试将我的项目链接到PortAudio时遇到问题。当我在项目中使用RtAudio头文件时;MidInDummy:此类不提供任何功能"我在网上找到的大多数解决方案都是将__WINDOWS_MM__添加到预处理器定义中,并链接到winmm.lib(如上所示https://www.music.mcgill.ca/~gary/rtmidi/(然而,做了这些,我仍然遇到同样的问题。

我收到错误消息"MidInDummy:此类不提供任何功能">

这警告没有定义有效的MIDI API。警告是从rtMidi.cppMidiInDummy类的构造函数发出的,它只是一个占位符,没有函数实现。

__WIN_MM__添加到预处理器定义

这是Windows版本的错误#define,它解释了MidiInDummy警告。参考页面"编译"下列出的正确定义是:

#define __WINDOWS_MM__

一旦定义了__WINDOWS_MM__,在修复了几个遗留的小问题后,示例cMidiIn.dsp项目就可以使用VS 2019进行良好构建:

  • error D8016: '/ZI' and '/Gy-' command-line options are incompatible-将项目属性/C/C++/常规/调试信息从/ZI更改为/Zi

  • warning D9035: option 'Gm' has been deprecated and will be removed in a future release-将项目属性/C/C++/代码生成/启用最小重建从/Gm更改为/Gm-

  • warning C4138: '*/' found outside of comment-在中的/*userData*/之前添加一个空格

    void mycallback(double deltatime, std::vector< unsigned char >* message, void* /*userData*/)
    

最新更新