rtmidi库(C ++)找不到LoopBe MIDI端口

时间:2013-05-14 09:03:13

标签: c++ midi

我正在尝试使用RtMIDI来处理MIDI输入。 在我的机器上,我设置了LoopBe1内置MIDI端口。 我使用的RtMIDI代码如下(基本上是RtMIDI站点的演示代码)。

#include <iostream>
#include <cstdlib>
#include <signal.h>
#include "RtMidi.h"

int main()
{
  RtMidiIn *midiin = new RtMidiIn();

  // Check available ports.
  unsigned int nPorts = midiin->getPortCount();
  if ( nPorts == 0 ) {
    std::cout << "No ports available.\n";
  }
  else std::cout << "Port(s) found.\n";
  getchar();

  return 0;
}

当我运行这个时,我得到no ports available消息。 LoopBe1端口适用于我在机器上的其他MIDI应用程序,我有另一个我用C#编写的MIDI应用程序(使用NAudio而不是RtMIDI),发现端口没问题。

我一直在网上搜寻,但找不到原因。 任何人都可以提出任何想法,为什么RtMIDI找不到端口? 感谢。

1 个答案:

答案 0 :(得分:2)

我没有完成教程所说的内容(没有阅读说明): “为了针对特定的操作系统和API编译RtMidi,有必要在编译器语句中提供适当的预处理器定义和库:”

要在Windows Visual C ++ Express 2010中执行此操作,请执行以下操作:

  1. 转到PROJECT - &gt;特性 - &gt; C / C ++ - &gt;预处理器 然后在“预处理器定义”框中单击下拉列表并单击“编辑”,然后单击“添加” (下划线的下划线)WINDOWS_MM(强调undercsore)

  2. 转到PROJECT - &gt;特性 - &gt;链接器 然后在附加依赖项输入框中单击下拉列表并单击编辑,然后添加 winmm.lib

  3. 它现在有效。