1

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# で (RtMIDI ではなく NAudio を使用して) 記述した別の MIDI アプリケーションが、ポートを問題なく検出します。

私はウェブをトロールしてきましたが、その理由を見つけることができません。RtMIDI がポートを見つけられない理由について、何かアイデアを提案できますか? ありがとう。

4

1 に答える 1

2

私はチュートリアルの状態を実行していませんでした (指示を読んでいませんでした):

Windows Visual C++ Express 2010 でこれを行うには、以下が必要です。

  1. PROJECT -> PROPERTIES -> C/C++ -> Preprocessor に移動し、「プリプロセッサ定義」ボックスでドロップダウンをクリックして編集をクリックし、(アンダースコア undercsore)WINDOWS_MM(underscore undercsore) を追加します。

  2. PROJECT -> PROPERTIES -> LINKER に移動し、追加の依存関係の入力ボックスでドロップダウンをクリックし、[編集] をクリックしてから、winmm.lib を追加します。

それは今動作します。

于 2013-05-14T09:23:35.297 に答える