【问题标题】:rtmidi library (C++) cannot find LoopBe MIDI portrtmidi 库 (C++) 找不到 LoopBe MIDI 端口
【发布时间】:2013-05-08 11:44:57
【问题描述】:

我正在尝试使用 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;
}

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

我一直在网上搜索,但找不到原因。 任何人都可以就 RtMIDI 找不到端口的原因提出任何想法吗? 谢谢。

【问题讨论】:

    标签: c++ midi


    【解决方案1】:

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

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

    1. 转到项目 -> 属性 -> C/C++ -> 预处理器 然后在“预处理器定义”框中单击下拉菜单并单击编辑,然后添加 (下划线下划线)WINDOWS_MM(下划线下划线)

    2. 转到项目 -> 属性 -> 链接器 然后在附加依赖项输入框中点击下拉并点击编辑,然后添加 winmm.lib

    现在可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-31
      • 2012-06-13
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多