首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >irrklang发动机未被宣布为无效

irrklang发动机未被宣布为无效
EN

Stack Overflow用户
提问于 2015-10-12 13:22:48
回答 1查看 208关注 0票数 0

编辑2:解决了!使用下面的代码,它就成功了!

代码语言:javascript
复制
irrklang::ISoundEngine* engine = irrklang::createIrrKlangDevice();

只需将代码放在代码的顶部即可。(可能是包含或命名空间的下一行)

我正在使用irrKlang播放音频,但我遇到了一个问题:

代码语言:javascript
复制
#include <irrKlang.h>

void playSound() {
    engine->play2D("src/Click.wav");
}

int main() {
    irrklang::ISoundEngine* engine = irrklang::createIrrKlangDevice();
    playSound();

    engine->drop();
    return 0;
}

当我运行这段代码时,它会显示“engine”(在空中)并没有在这个作用域中声明。

我在int main测试这个,但它有效。问题是它只在主要的时候起作用,而在无效的时候不起作用。

有什么可以用来修正这个错误的吗?还是一只虫子?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-12 13:25:16

这是意料之中的。irrklang::ISoundEngine* engine是用main函数定义的,而不是在playSound()中定义的。

一个简单的解决方案是将引擎作为一个参数传递。

代码语言:javascript
复制
void playSound(irrklang::ISoundEngine* engine) {
    engine->play2D("src/Click.wav");
}

main中这样称呼它

代码语言:javascript
复制
playSound(engine);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33082297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档