gpt4 book ai didi

c++ - 使用 MinGW + Eclipse 在 Win32 程序中播放声音

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:29 26 4
gpt4 key购买 nike

正如您从标题中看到的那样,我正在使用 MinGW 和 Eclipse 制作一个 Win32 应用程序,该应用程序可以从自己的资源中播放声音。我是这个 MinGW 编译器和 Eclipse 的新手,我的 C++ 有点生疏。目前不能使用 VC++。

因此,据我所知,我无法向应用程序添加一些库内容。

我的代码如下

//MyClass.cpp

#include <windows.h>
#include <mmsystem.h>

#pragma comment(lib,"libwinmm.a")

#include "MyClass.h"
#include "../resources.h"

/*------------------------------------*/

void MyClass::Enable() {
_isEnabled = true;
PlaySound(MAKEINTRESOURCE(ActivatedSound), NULL, SND_RESOURCE | SND_ASYNC);
}

//resources.h

#define ActivatedSound 2001

//resources.rc

ActivatedSound WAVE "resources/sounds/activated.wav"

编译器选项:-c -fmessage-length=0 -std=c++11

链接器标志:-mwindows

我在调用 PlaySound 函数的行中遇到错误。

错误:对“PlaySoundA@12”的 undefined reference

谁能告诉我我做错了什么,以及如何解决?

更新:

看来我已经通过在项目设置 -> MinGW C++ 链接器 -> 库下的库字段中添加包含“winmm”的记录来解决我的问题 http://i.stack.imgur.com/q2N8f.png

...当然,删除#pragma 语句也有帮助。

最佳答案

GCC 不理解 VS 链接器编译指示。这意味着添加

-lwinmm

链接器标记自己,就像任何其他编译器一样。

关于c++ - 使用 MinGW + Eclipse 在 Win32 程序中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20032803/

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