Библиотека rtmidi (C ++) не может найти порт LoopBe MIDI

Я пытаюсь использовать RtMIDI для обработки ввода MIDI.
На моей машине я установил внутренний MIDI-порт LoopBe1.
Код 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-приложений, которые у меня есть на компьютере, и у меня есть другое MIDI-приложение, которое я написал на C # (с использованием NAudio, а не RtMIDI), которое не обнаруживает проблем с портом.

Я бродил по сети, но не могу найти причину.
Кто-нибудь может предложить какие-либо идеи относительно того, почему RtMIDI не может найти порт?
Благодарю.

1

Решение

Я не сделал то, что говорится в руководстве (не читал инструкции):
«Чтобы скомпилировать RtMidi для конкретной ОС и API, необходимо предоставить соответствующее определение препроцессора и библиотеку в операторе компилятора:»

Для этого в Windows Visual C ++ Express 2010 необходимо:

  1. Перейти к ПРОЕКТУ -> СВОЙСТВА -> C / C ++ -> Препроцессор
    Затем в поле «Определения препроцессора» щелкните раскрывающийся список и нажмите «Изменить», затем добавьте
    (подчеркивание подчеркивания) WINDOWS_MM (подчеркивание подчеркивания)

  2. Перейти к ПРОЕКТУ -> СВОЙСТВА -> LINKER
    Затем в поле ввода дополнительных зависимостей щелкните раскрывающийся список и нажмите кнопку «Изменить», затем добавьте
    winmm.lib

Теперь это работает.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]