0

一些包含 Playsound 重要功能的部分

MCI_OPEN_PARMS m_mciOpenParms;
MCI_PLAY_PARMS m_mciPlayParms;
DWORD m_dwDeviceID;
MCI_OPEN_PARMS mciOpen;
MCI_PLAY_PARMS mciPlay;

int dwID;
//
#define TITLE_SPACE 55
#define TITLE_ENTER 10
/*music address*/#definedecision_change "C:\\Users\\chanho\\Desktop\\decision_change.wav"
#define main_theme "C:\\Users\\chanho\\Desktop\\FlappyChicken.mp3"

我的代码的一部分

        if (inner_time == 0)
    {
        //bgm
        mciOpen.lpstrElementName = TEXT(main_theme);
        mciOpen.lpstrDeviceType = "mpegvideo";
        mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (DWORD)(LPVOID)&mciOpen);
        dwID = mciOpen.wDeviceID;
        mciSendCommand(dwID, MCI_PLAY, MCI_DGV_PLAY_REPEAT, (DWORD)(LPVOID)&m_mciPlayParms);
        //
    }

它在其他 PC 或笔记本电脑上运行良好,但是当我插入此代码并对其进行编译时,它返回奇怪的退出代码并在“我的部分代码”时停止

当我删除这个“我的代码的一部分”时,它没有问题。

编译此代码时没有发生错误,即使它有奇怪的退出代码。

谁能解释一下为什么只有我的笔记本电脑会返回那个 -107~~~ 代码以及如何修复它?

4

1 回答 1

0

好吧 -1073741819 是十六进制的 0xc0000005,即 ACCESS_VIOLATION

也许您没有文件的读取权限

请参阅VC++ 中的异常错误 c0000005

再三考虑,这不是烫发的事情,而是内存读写错误。我怀疑您没有在某处测试返回值,因此使用的是函数返回的 NULL 指针。您没有显示足够的代码来分辨

于 2018-11-29T00:33:03.620 回答