【发布时间】:2018-04-27 07:31:47
【问题描述】:
在 Basic 的许多版本中,可以使用语句 PLAY 播放音乐。它接受作为其参数、音符、八度音阶等,但也接受子字符串。
例如,A$="BCD": B$="FDE": PLAY "XA$;O3XB$;" 等价于PLAY "BCDO3FDE"
我想在 C++ 中做同样的事情。我知道这很困难,因为 BASIC 是解释和 C++ 编译的,但是有没有办法?
更准确地说,我已经有一个函数PlayString(AnsiString ss),它可以播放由音符(例如“BCD”)、八度音阶(前缀O加一个数字,例如“O2”)、音符长度组成的字符串(前缀 L 加一个数字,例如“L4”),所以要播放的字符串可以是“BCDO3FDE”(同上)。
我想添加播放子字符串所需的代码,比如前缀 X,这样下面一行中的代码就可以工作了:
AnsiString aa="BCD", bb="FDE";PlayString("Xaa;O3Xbb;");
和等价于
PlayString("BCDO3FDE");
想法,有人吗?
【问题讨论】:
标签: c++ playback basic indirection