在exe中添加wav

时间:2017-12-08 20:03:16

标签: c++ winapi audio exe wave

有没有办法在没有附加wave文件的情况下将音乐添加到exe(c ++)文件?

例如,如果我使用" PlaySound"要播放wav文件,wave文件应位于exe文件所在的同一文件夹下。但我想在没有wav文件的情况下运行它,以便当有人收到exe文件时,他们可以在不接收wav文件的情况下收听音乐。

我希望它作为代码...

这是我目前的代码。

#include <iostream>
#include <stdio.h>
#include <windows.h>
using namespace std;


/* ========================================================================== */
enum {
    BLACK,
    DARK_BLUE,
    DARK_GREEN,
    DARK_SKY_BLUE,
    DARK_RED,
    DARK_VOILET,
    DARK_YELLOW,
    GRAY,
    DARK_GRAY,
    BLUE,
    GREEN,
    SKY_BLUE,
    RED,
    VIOLET,
    YELLOW,
    WHITE,
};

enum { HIDDEN, SHOW };

void CursorView(char show)
{
    HANDLE hConsole;
    CONSOLE_CURSOR_INFO ConsoleCursor;

    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    ConsoleCursor.bVisible = show;
    ConsoleCursor.dwSize = 1;

    SetConsoleCursorInfo(hConsole, &ConsoleCursor);
}

void gotoxy(int x, int y)
{
    COORD XY = { x, y };
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), XY);
}
void SetColor(int color)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}

void gamedraw(void)
{
        PlaySound(TEXT("10.wav"), NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);

        printf("You are listening to my song.");

  getchar();
}
void MainInit(void)
{
   system("mode con: cols=100 lines=45");
   system("cls");
}

/* ========================================================================== */

int main(void)
{
   CursorView(HIDDEN);
   MainInit();

   gamedraw();

   for (;;) {

      if (GetAsyncKeyState(VK_ESCAPE) < 0)  break;
   }

   CursorView(SHOW);

   return 0;
}

1 个答案:

答案 0 :(得分:-2)

您可以将.wav添加为资源,但随后播放它会变得非常困难(要么您必须将资源提取到磁盘上的某个路径,要么使用其中一个音频API来提交wav数据)