Есть ли способ добавить музыку в файл exe (c ++) без дополнительного файла волны?
Например, если я использую «PlaySound» для воспроизведения wav-файла, волновой файл должен находиться в той же папке, где находится 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;
}
Вы можете добавить .wav в качестве ресурса, но затем воспроизвести его становится намного сложнее (либо вам придется извлечь ресурс по какому-либо пути на диске, либо использовать один из аудио-API для отправки wav-данных).
Других решений пока нет …