gpt4 book ai didi

c++ - 尝试在 PortMidi 中打开输入

转载 作者:搜寻专家 更新时间:2023-10-31 01:19:04 24 4
gpt4 key购买 nike

我正在尝试打开一个 MIDI 端口以使用 PortMidi 从 C++ 中的 MIDI 键盘读取事件。我使用 GetDeviceInfo 找到了键盘的设备 ID,但无法打开输入。

函数如下所示:

    Pm_OpenInput    (   PortMidiStream **   stream,
PmDeviceID inputDevice,
void * inputDriverInfo,
long bufferSize,
PmTimeProcPtr time_proc,
void * time_info
)

该函数背后的完整文档是 here

还有我的实现...

PortMidiStream **stream;
Pm_OpenInput(stream, 12, NULL, 128, NULL, NULL);

..给出错误

Run-Time Check Failure #3 - The variable 'stream' is being used without being initialized.

..这是真的,因为我还没有初始化它。我查看了 PortMidi.h 和大多数互联网试图找到 PortMidiStream 以及如何初始化它但没有成功。头文件只有一个 typedef 和一条注释

A single PortMidiStream is a descriptor for an open MIDI device

这并没有多大帮助。

任何想法表示赞赏

乔丹

P.S- 这是 PortMidi 下载页面 http://sourceforge.net/apps/trac/portmedia/wiki/portmidi

最佳答案

文档说明

stream is the address of a PortMidiStream pointer which will receive a pointer to the newly opened stream.

因此,请修改您的代码以完全按照它所说的去做。

PortMidiStream *stream; /* A PortMidiStream pointer */
Pm_OpenInput(&stream, 12, NULL, 128, NULL, NULL); /* Pass the address of the pointer */

这是 C 中用于返回指针值的常见习惯用法。

关于c++ - 尝试在 PortMidi 中打开输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6506381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com