冥界3大法王 发表于 2021-11-27 19:47

求教以下C++播放*.wav的代码

我要是用它来播放x64dbg.exe 内置的资源中的.wav文件 ,那个路径是不是得修改一下?
因为,我看到的QT的源码中是这样的:
    QFile file(":/icons/images/egg.wav"); <=======看这句!!!!
    if(file.open(QIODevice::ReadOnly))
    {
      QByteArray egg = file.readAll();
      PlaySoundA(egg.data(), 0, SND_MEMORY | SND_ASYNC | SND_NODEFAULT);
    }


#include <Windows.h>
#include <mmsystem.h>

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <assert.h>

#pragma comment(lib,"WinMM.Lib")

using namespace std;


BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize)
{
    // Get the required size of the buffer that receives the Unicode
    // string.
    DWORD dwMinSize;
    dwMinSize = MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, NULL, 0);
    assert(dwSize >= dwMinSize);

    // Convert headers from ASCII to Unicode.
    MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, lpwszStr, dwMinSize);
    return TRUE;
}

int main(int argc, char** argv)
{
    string s = "D:\\MyDesktop\\6.wav";// "bt.wav";
    wchar_t wText = { 0 };
    MByteToWChar(s.c_str(), wText, sizeof(wText) / sizeof(wText));
    PlaySound(wText, NULL, SND_FILENAME | SND_SYNC);
    system("pause");
    return 0;
}

冥界3大法王 发表于 2021-11-27 19:49

一个是绝对的,一个是相对的。
一个是外部的,一个是资源包内置的。
调用方式也得变吧?

Eaglecad 发表于 2021-11-27 21:39

后面部分代码,都没读文件吧?那播放不了

QT那个是读取资源文件中所有内容,放到播放里。
而下面那个vc的代码就没有读文件,只是穿了个路径进去。

冥界3大法王 发表于 2021-11-27 22:08

Eaglecad 发表于 2021-11-27 21:39
后面部分代码,都没读文件吧?那播放不了

QT那个是读取资源文件中所有内容,放到播放里。


@Eaglecad
求大师兄给改个相对路径的(能调内部文件的)完整版的C++实现代码(第2段部分)

92013 发表于 2021-11-27 22:14

不是 你这个转换字符串是干什么的?直接读取文件到buff里不就可以播放了

无闻无问 发表于 2021-11-27 22:24

播放不行吗?playsound好像是100k以下才可以

无闻无问 发表于 2021-11-27 22:27

92013 发表于 2021-11-27 22:14
不是 你这个转换字符串是干什么的?直接读取文件到buff里不就可以播放了

应该加个L或TEXT就行了…

Eaglecad 发表于 2021-11-28 08:47

冥界3大法王 发表于 2021-11-27 22:08
@Eaglecad
求大师兄给改个相对路径的(能调内部文件的)完整版的C++实现代码(第2段部分)

http://www.360doc.cn/mip/874485227.html可以参考这个试试,没开电脑,就没试。

冥界3大法王 发表于 2021-11-28 08:53

谢谢诸位,一会试试。
有了x64dbg编译环境,果然能办很多事。
刚把向命令行传内置命令学会,这次可以办很多梦想中的事情了。{:301_986:}

zhang1217 发表于 2021-11-28 09:38

不懂 有时间可以都试试
页: [1]
查看完整版本: 求教以下C++播放*.wav的代码