C++ irrklang引擎未声明为无效
编辑2: 解决了的!使用下面的代码,它工作了C++ irrklang引擎未声明为无效,c++,function,void,irrklang,C++,Function,Void,Irrklang,编辑2: 解决了的!使用下面的代码,它工作了 irrklang::ISoundEngine* engine = irrklang::createIrrKlangDevice(); 只需将代码放在代码顶部。(可能是include或namespace的下一行) 我正在使用irrKlang播放音频,但我遇到了一个问题: #include <irrKlang.h> void playSound() { engine->play2D("src/Click.wav"); }
irrklang::ISoundEngine* engine = irrklang::createIrrKlangDevice();
只需将代码放在代码顶部。(可能是include或namespace的下一行)
我正在使用irrKlang播放音频,但我遇到了一个问题:
#include <irrKlang.h>
void playSound() {
engine->play2D("src/Click.wav");
}
int main() {
irrklang::ISoundEngine* engine = irrklang::createIrrKlangDevice();
playSound();
engine->drop();
return 0;
}
#包括
void playSound(){
引擎->播放2D(“src/Click.wav”);
}
int main(){
irrklang::ISoundEngine*引擎=irrklang::createIrrKlangDevice();
播放声音();
引擎->下降();
返回0;
}
当我运行这段代码时,它显示“引擎”(在空中)没有在这个范围内声明
我在int main测试这个,但它可以工作。问题是,它只在主要方面起作用,而在无效方面不起作用
我可以用什么来修复这个错误?还是一只虫子
提前谢谢。这是意料之中的事
irrklang::ISoundEngine*引擎
在main
函数中定义,但不在playSound()中定义
一个简单的解决方案是将引擎作为参数传递
void playSound(irrklang::ISoundEngine* engine) {
engine->play2D("src/Click.wav");
}
在main
中这样称呼它
playSound(engine);
你称之为“虚空”的东西通常被称为“函数”。(void
是一种类型,类似于int
)