代码献礼工程的记录

原理:利用windows自带api接口来播放midi音乐

本工程的midi音乐由对应十六进制文件生成,所以运行exe时可以在没有midi文件的基础上播放音乐


midi音乐转十六进制

首先找到一首midi音乐,我在MIDI云 ◇ MIDI音乐下载与分享找到的《没有共产党就没有新中国》质量极高

把midi文件用010Editor打开,点击左上角File,选Export Hex即可导出十六进制文件,会得到一个txt文本

把其中的内容复制,随便找个去除空格和回车的网站,比如文本去空格,去除后得到一个字符串,赋值给MIDImusic数组

此处字符串一般很长,需要在中间断开,把一整个字符串分隔成3-4个字符串,具体可见下方示例代码


三个数组的作用

const char* MIDImusic数组存储midi文件十六进制的字符串,注意分隔开,不然会报字符串过长的错

const char* Lyrics[]数组存放歌词

int SleepTime[]数组存放两句歌词之间的间隔时间,单位为毫秒


函数

void Pos(int x, int y)函数是可以定位小黑框中光标的函数,实现如下

1
2
3
4
5
6
7
8
9
10
void Pos(int x, int y)
{
COORD pos;
HANDLE hOutput;
pos.X = x;
pos.Y = y;
hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOutput, pos);
return;
}

这个函数其实很好玩,我大一没写完的《基于十三机兵防卫圈的战棋游戏》就利用了这个函数,可以在初学编程仅接触过小黑框时用来做UI,做地图,在此工程用作字符画和歌词定位,具体实现原理还不清楚,不过可以直接拿来主义


void PrintLyrics()函数用于打印歌词,需要算好时间和位置显示

时间就用SleepTime[]数组,位置就用Pos(int x, int y)函数

然后在循环中对应时间位置显示歌词即可


void InitializeMusic()函数为Pointer指针做初始化


void PlayMusic()函数先在C:,再播放该音乐,所以可以做到在一开始没有midi文件的前提下还能播放音乐

这个目录下的文件全部可以清理,不然C盘容易红


main()函数中

1
2
3
system("color F4");	//设置小黑框底色为亮白色(F),字体颜色为红色(4)
HWND hWnd = GetConsoleWindow(); //获得cmd窗口句柄
SetWindowPos(hWnd, NULL, 0, 0, 1500, 800, NULL); //设置小黑框长1500像素,宽800像素


字符画

字符画可以利用Ascgen2-2.0.0来获取,下载地址

左上角File - Load Image就可以选择图片,然后生成字符画

左上角File - Save As可以选择txt格式导出

这个字符画的大小要根据小黑框的大小调整,具体什么比例就看自己需求了



最后附上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<Windows.h>
#include<stdlib.h>
#include<vfw.h>
#pragma comment(lib,"vfw32.lib")

using namespace std;

const char* MIDImusic = "4D546864000000060001001100F04D54726B0000001C00FF510307A12082BB00FF51030A2C2B8740FF510307A12000FF2F004D54726B0000002800B9650000640200064000650000640100064000650000640000060200076482CF63090000FF2F004D54726B0000003A00FF030D42726173732053656374696F6E00B0650000640200064000650000640100064000650000640000060200C03D82CE59B0090000FF2F004D54726B0000003D00FF030D46696E676572452E426173733000B1650000640200064000650000640100064000650000640000060200C12100B1076282D033090000FF2F004D54726B0000003A00FF030D42726173732053656374696F6E00B2650000640200064000650000640100064000650000640000060200C23D82BA2EB2090000FF2F004D54726B0000004100FF03115472756D706574616E64205069616E6F1000B3650000640200064000650000640100064000650000640000060200C33800B3075082900D090000FF2F004D54726B0000003800FF030B53747220456E736D62203100B4650000640200064000650000640100064000650000640000060200C43082D03DB4090000FF2F004D54726B0000003100FF03045475626100B5650000640200064000650000640100064000650000640000060200C53A81A54CB5090000FF2F004D54726B0000002500B9650000640200064000650000640100064000650000640000060282CF63090000FF2F004D54726B00001655009931500099265100992469139926000199240000993100649926381399260029992638139926002999264013992600659926401299260066993150009924691199240000993100679926381399260029992638129926002A992648179926006199264713992600659931500099265100992469119931000099260001992400669926421599260027992647139926002999264C149926006499265111992600679931500099246913992400009931006599263D149926002899264215992600279931550099264C0099246611992400019931000199260029992634119926002B9926140099264C12992600009926002A9926240099261C12992600009926002A99335000992651009924691299240000993300029926006499263815992600279926381699260026992640149926006499264014992600649933500099246914993300019924006399263815992600279926381499260028992648129926006699264715992600639933500099265100992469129926000199240000993300659926421499260028992647179926002599264C149926006499265115992600639933500099246914992400009933006499263D1599260027992642169926002699264812992600669933420099263D00992466149924000099260001993300639933500099246911992400009933006799263D1399260029992642179926002599264C14992600649926421399260065993350009924691299240001993300659926421599260027992642159926002799264C14992600649926421199260067993350009926570099246917992400009926000099330061992642129926002A9926421399260029992648149926006499333D0099263D0099246B149924000099260000993300649933500099264C009924691899240000992600009933006099263D149926002899263D14992600289933570099263D009924691399240000993300029926002799262E1499260028992638149926002899263D129926002A9933500099265100992469149924000099330001992600639926381399260029992638119926002B99264015992600639926401499260064993350009924691399330002992400639926381499260028992638159926002799264814992600649926471499260064993350009926510099246915992400009926000099330063992642129926002A992647149926002899264C149926006499265116992600629933500099246914992400009933006499263D1399260029992642119926002B99264814992600649933420099263D00992466119924000099330002992600659933500099246915992400009933006399263D129926002A992642139926002999264C1499260064992642139926006599335000992469149924000099330064992642129926002A992642149926002899264C1599260063992642149926006499335000992657009924691499240000993300019926006399264214992600289926421399260029992648129926006699333D0099263D0099246B1499240000992600009933006499334A00992665009924691499240000992600009933006499262E0099264515992600009926002799263800992622139926000099260029992865009926541399280001992600815C993350009926510099246912993300009926000199240065992655139926006599334900992465159924000099330063992655129926002A99263A119926002B993350009924691599240001993300629926501499260028992638169926002699334900992648009924651699240000992600009933006299264714992600649933500099265100992469109924000099330001992600679926501399260065993349009924651199240001993300669926511399260065993350009924601499240000993300649926441499260064993349009926480099246A11993300009926000199240066993342009926400099246613993300009926000199240028992630119926002B9933500099246916992400009933006299265512992600669933490099246A1399330001992400649926501499260064993350009924691299330001992400659926501399260029992642179926002599334E0099264C0099246A1499330000992600019924006399334A0099264200992465139926000199240000993300649933500099246900992657149933000099240002992600629926501499260028992642149926002899335300992648009924651299240000993300019926006599265513992600659933500099246914992400009933006499263D139926002999263D159926002799334E0099263D0099246A1599240001992600009933002699262E15992600279933500099246A009926381499330000992400029926002699263D129926002A993150009926510099246910992400019926000399310064992655149926006499314900992465129931000299240064992655149926002899263A15992600279931500099246913992400009931006599265013992600299926381599260027993149009926480099246510992400009926000199310067993142009926471499260001993100639931500099265100992469149931000199240000992600639926501299260066993149009924651299310001992400659926511399260065993150009924601399240000993100659926441199260067993149009926480099246A11993100009926000199240066993142009926400099246615993100019924000099260026992630129926002A9931500099246915992400009931006399265514992600649931490099246A1299240000993100669926501499260064993150009924691399240000993100659926501599260027992642159926002799314E0099264C0099246A1399310000992600019924006499314A00992642009924651099240000992600019931006799315000992657009924690F9924000099260001993100689926501499260028992642159926002799315300992648009924651399310000992600019924006499265511992600679931500099246915992400009931006399263D129926002A99263D159926002799314E0099263D0099246A1499310001992400009926002799262E13992600299931500099246A009926381599310000992400019926002699263D159926002799314E0099265A00992469129924000099260000993100812299262A0099282700992625009928211199280000992800029926000099260029992863009926621199280001992600815E9931500099265100992469149926000199240000993100639926381499260028992638159926002799264017992600619926401299260066993150009924691099240002993100669926381499260028992638159926002799264814992600649926471399260065993150009926510099246914992600019924000099310063992642129926002A992647119926002B99264C159926006399265114992600649931500099246914992400009931006499263D1599260027992642139926002999264814992600649931420099263D00992466119924000099260000993100679931500099246913992400009931006599263D1499260028992642119926002B99264C1499260064992642159926006399315000992469149924000199310063992642129926002A992642139926002999264C1599260063992642139926006599315000992657009924691199240000992600009931006799264213992600299926421699260026992648119926006799313D0099263D0099246B109924000099310002992600669931500099266C009924691199240001992600009931002A99262C1799260025992638149926002899264C14992600289931550099264C009924661499310001992400009926002799263419992600239926140099264C12992600009926002A9926240099261C15992600009926002799335000992469009926511299330003992400019926006299263814992600289926381599260027992640139926006599264010992600689933500099246911992400039933006499263814992600289926381699260026992648139926006599264715992600639933500099265100992469139933000299240001992600629926421399260029992647169926002699264C169926006299265115992600639933500099246914993300019924006399263D1399260029992642169926002699264815992600639933420099263D00992466129926000199240002993300639933500099246911993300049924006399263D119926002B992642159926002799264C15992600639926421499260064993350009924691399330001992400649926421399260029992642149926002899264C169926006299264214992600649933500099265700992469119926000299240004993300619926421699260026992642129926002A992648149926006499333D0099263D0099246B129926000199240001993300649933500099264C009924691299260001992400059933006099263D129926002A99263D109926002C9933570099264C009924661199240000992600029933002999263413992600299926140099264C1399260000992600299926240099261C1399260000992600299933500099265100992469139924000199260000993300649926381599260027992638139926002999264014992600649926401399260065993350009924691399330001992400649926381399260029992638129926002A992648149926006499264714992600649933500099265100992469139924000099260002993300639926421499260028992647139926002999264C149926006499265114992600649933500099246914993300029924006299263D1599260027992642159926002799264815992600639933420099263D00992466119933000299260001992400649933500099246911992400049933006399263D1599260027992642159926002799264C15992600639926421599260063993350009924691499240000993300649926421499260028992642169926002699264C139926006599264212992600669933500099265700992469149933000299240000992600629926421399260029992642119926002B992648149926006499333D0099263D0099246B1399260001993300019924006399334A00992665009924691299240000992600029933006499262E0099264513992600009926002999263800992622139926000099260029992865009926541499280001992600815B993350009926510099246912992400009933000199260065992655149926006499334900992465159924000099330063992655169926002699263A1599260027993350009924691499240002993300629926501399260029992638159926002799334900992648009924651599240000992600019933006299264715992600639933500099265100992469109933000399240001992600649926501399260065993349009924651199240001993300669926511499260064993350009924601399240001993300649926441499260064993349009926480099246A10992400009926000199330067993342009926400099246613993300019924000099260028992630129926002A9933500099246913992400039933006299265514992600649933490099246A1299240001993300659926501499260064993350009924691299330003992400639926501399260029992642179926002599334E0099264C0099246A1399260001992400009933006499334A0099264200992465119924000099260003993300649933500099265700992469149933000199240000992600639926501599260027992642119926002B99335300992648009924651299330000992600019924006599265513992600659933500099265A009924691399240000992600019933006499265A149926006499334E00992655009924651399240000992600039933006299335000992650129926000299330064993150009926510099246911992400009926000399310064992655119926006799314900992465129924000099310066992655159926002799263A109926002C99315000992469139931000199240064992650119926002B9926381399260029993149009926480099246511993100019924000099260066993142009926471499260001993100639931500099265100992469109924000299260002993100649926501299260066993149009924651299310001992400659926511699260062993150009924601399310001992400649926441499260064993149009926480099246A11993100029924000099260065993142009926400099246612992600019924000299310027992630119926002B99315000992469139924000" "29931006399265514992600649931490099246A129924000099310066992650159926006399315000992469139931000199240064992650129926002A992642159926002799314E0099264C0099246A1399310002992400029926006199314A0099264200992465119931000099260002992400659931500099265700992469109931000299260001992400659926501399260029992642149926002899315300992648009924651199240000992600029931006599265513992600659931500099246915992400009931006399263D159926002799263D149926002899314E0099263D0099246A1499310003992400009926002599262E1499260028993150009926380099246A1399240001992600019931002799263D139926002999314E0099265A00992469129931000399240000992600811F992827009928210099262A00992625119926000099260001992800009928002A992863009926621199260000992800815F993150009926510099246914992400019926000099310063992638109926002C992638139926002999264014992600649926401299260066993150009924691299310002992400649926381399260029992638129926002A992648149926006499264712992600669931500099265100992469139926000199240001993100639926421499260028992647129926002A99264C149926006499265115992600639931500099246914992400009931006499263D1499260028992642109926002C99264814992600649931420099263D00992466119931000299240001992600649931500099246911992400029931006599263D1699260026992642139926002999264C13992600659926421599260063993150009924691399240002993100639926421499260028992642159926002799264C139926006599264211992600679931500099265700992469119931000099260001992400825699313D109931006899315012993100815E99315514993100815C993150009924690F9924000299310067992650129926002A992642139926002999315300992648009924651199240000992600019931006699265514992600649931500099246914992400009931006499263D139926002999263D169926002699314E0099263D0099246A1699240000992600019931002599262E1599260027992638139926002999263D1399260029993150009926600099246914993100019924000099260063992625139926002999263A0099262A13992600009926002999266514992600289926601599260063992660149926002899265A159926006399262B159926002799282A00992825009926310099261F109928000099280005992600009926002799316E009928510099265E009924711199310000992600009928000299240000FF2F004D54726B000003FF00C03D00904C7F78904A6C25904C0013904A004090485A4A9048002E904C733C904C003C904A7F825E904A000A904C6934904C0044904F7027904F0051904F6630904F0048904C736C904C000C904A6C7890486C01904A003F904800819D0090487F81269048004A904354813A9043003690457723904500559045772F90450049904366789045613F904500109043002990486320904800589048633190480047904566779045000190485A3390480045904A70810E904A008252904C5A8128904C0048904A638138904A003890487C3C9048003C904C5649904C002F904A5A6B904A000D904869619048001790456978904A630290450029904A004D9047736A9047000E904566749045000490435C831C9043004490487F81589048001890455E81679045000990486983339048002D90405E6790400011904861589048002090455863904500159043517890455A01904300835C9045000390406981529040001E90486C81519048001F90455E825E9045000A9043637190430007904A5A4E904A002A904851699048000F9045407890434E079045006C9043000590455A83609040700990450081539040001490485E813790480039904563815E9045001290406C812E904000429040586490400014904370429043003690457381369045003A904566832B90450035904C56812F904C0041904A696A904A000E9048703690480042904A7C8150904A002090436381669043000A9045697890485C089045003D90480033904A5C8135904A003B904A5E8304904A005C9040615A9040001E90435A28904300509043612B9043004D904366359043004390457C399045003F90456C419045003790435E789045700F9043001E9045004B90487F249048005490487F369048004290455A78904A5C059045002A904A004990477F74904700049045586690450012904366816A90430006904A731A904A005E904A7F35904A004390487078904A770390480075904C7307904A001C904C0055904C7F27904C0051904A7C6B904A000D90487063904800159045693090450048904569439045003590487F35904800439048733E9048003A904A7F74904A000490487C6B9048000D9045546C9045000C9048587890436902904800820E9043008150904873259048005390435C639043001590456C2E9045004A9045772E9045004A9043618268904563239043000E9045004790485A259048005390485A3590480043904563789048630690450072904A690890480047904A008311904C7F61904C0017904A7C59904A001F9048666790480011904C6C6B904C000D904A778268904C700A904A0031904C003D904F7300904F660A904F0000904F008166904F708170904C660D904F00814D904C0016904A7F8156904A001A9048778C1990480000FF2F004D54726B000005BB00C1210091247081069124006A911F5E8103911F006D912166810B91210065911F618103911F006D912466811091240060911F5A79911F007791247363912400810D911F6166911F00810A91247381039124006D911F5A6F911F00810191215C7F91210071911F6971911F007F91246681019124006F91214F709121008100912663699126008107911F5A75911F007B912461811091240060911F5C7B911F007591215C7791210079911F666F911F00810191216361912100810F91216C6B9121008105911F7C8115911F005B911F636F911F00810191247381119124005F91246681029124006E91246981029124006E91246677912400799121637F9121007191215C739121007D912166769121007A9121696D91210081039124668108912400689124636D91240081039121698110912100609121636891210081089124668117912400599124636F9124008101912166810E912100629121697991210077911F738129911F0047911F5E8102911F006E912166811C9121005491215E81019121006F911F778114911F005C911F66810F911F0061912170811C9121005491216381029121006E912477811C9124005491247081129124005E91247081129124005E91246C81029124006E912673811E912600529126667D91260073911F7F812C911F0044911F668118911F0058912161810D91210063912161739121007D911F6C8112911F005E91215E81249121004C9121668117912100599121667991210077911F778102911F006E911F6977911F007991267C810B9126006591267381019126006F91247F810B91240065912473739124007D912177811A9121005691216981039121006D911D738119911D0057911D707B911D0075911F7F8276911F006A91247F812C9124004491246981069124006A912170811791210059911F738102911F006E91247781369124003A912466719124007F9126667791260079911F6974911F007C912463811D912400539124697A912400769126697A91260076911F6661911F00810F912470810B91240065911F7073911F007D91247F8154912400820C91247381039124006D911F5A6F911F00810191215C7F91210071911F6971911F007F91246681019124006F91214F709121008100912663699126008107911F5A75911F007B912461811091240060911F5C7B911F007591215C7791210079911F666F911F00810191216361912100810F91216C6B9121008105911F7C8115911F005B911F636F911F00810191247381119124005F91246681029124006E91246981029124006E91246677912400799121637F9121007191215C739121007D912166769121007A9121696D91210081039124668108912400689124636D91240081039121698110912100609121636891210081089124668117912400599124636F9124008101912166810E912100629121697991210077911F738129911F0047911F5E8102911F006E912166811C9121005491215E81019121006F911F778114911F005C911F66810F911F0061912170811C9121005491216381029121006E912477811C9124005491247081129124005E91247081129124005E91246C81029124006E912673811E912600529126667D91260073911F7F812C911F0044911F668118911F0058912161810D91210063912161739121007D911F6C8112911F005E91215E81249121004C9121668117912100599121667991210077911F778102911F006E911F6977911F007991267C810B9126006591267381019126006F91247F810B91240065912473739124007D912177811A9121005691216981039121006D911D738119911D0057911D707B911D0075911F7F8276911F006A91247F812C9124004491246981069124006A912170811791210059911F738102911F006E91247781369124003A912466719124007F9126667791260079911F6974911F007C912463811D912400539124697A912400769126697A91260076911F6661911F008121911F7F8632911F00799118778D7691180000FF2F004D54726B0000134000C23D8268924C510092484A0092433A1D92430000924C00029248008151924A580092475C009243491E9243000192470000924A008151924A630092475C0092434A1D924A000392430002924700814E924A690092475E0092434B219243000292470000924A00814D924A4F0092474A009243372A92430003924A000292470049924C4F0092484E009243391E92480004924C0004924300814A924C6C0092487C009243695D9243000792480000924C008204924C4F00924849009243351D9243000992480000924C00814A924C4800924843009243342192430001924C0004924800814A924C4D009248490092433D2192430000924C0001924800814E924C540092484B0092433B219243000092480002924C00814D924C410092484100924335259243000392480002924C008146924C440092484100924339259243000292480004924C008145924A5E0092475A009243441E9243000192470005924A00814C924A4F0092474D0092433D239243000292470000924A00814B924C4B0092484B0092433B1F924C000292430003924800814C924C5800924854009243462192430003924C0002924800814A924C5300924856009243431C924C000692430000924800814E924C4B0092484F00924340229243000492480001924C008149924C5A0092485E0092454F20924C000292450002924800814C924C5600924851009245492192480002924C00049245008149924A630092475E0092434D1F92470002924A0001924300814E924A5400924754009243411E9243000192470000924A008151924C4E0092484F009243381B92430000924C00049248008151924C4900924849009243391B924C0002924300019248008152924C5400924853009243401B9243000392480000924C008152924C45009248460092433725924C0002924300019248008148924C4F009248540092433F209243000692480001924C008149924C4D0092484D0092433A2092430007924C00019248008148924C5400924851009245401E9245000592480003924C00814A924C58009248560092454B219248000292450000924C00814D924C4500924845009243391F924C000192430004924800814C924C4A0092484B0092433B219243000192480002924C00814C924C530092485C009245531D9248000392450000924C008150924C5600924853009245441D9245000192480001924C008151924A54009247540092433E19924A0002924300039247008152924A5400924758009243441D924A000392470002924300814E924C580092485C009245461892450006924C000292480058924C5A009248580092454B1B9248000292450002924C0059924C580092485E009245451992450002924C00029248008153924C4D009248580092434018924C0006924300019248008151924C4F009248510092433B1A92430005924C0005924800814C924C4A0092484D0092433A1B9243000292480001924C008152924C45009" "24844009243371D9248000292430001924C008150924C4B0092484B0092433A1F92430000924C0002924800814F924C4F00924851009245431B9245000192480002924C008152924C510092484F009245401D9245000392480000924C008150924C4F0092484B009245421B92480002924C00039245008150924C4D0092484D0092433D1E92430004924C0002924800814C924C44009248490092433A1D92430002924C0004924800559249350E9249006A924C5400924851009243401D9243000092480002924C008151924C4B0092484E0092433B1E9243000392480005924C00814A924C5600924853009243451E92430009924C000192480050924C660092486100924351219248000492430000924C00814B924A730092476C0092435E82209243000292470004924A0042924C4D0092484E0092434A1192480002924C00099243008154924C360092483E009243341D9248000292430002924C0057924C4200924845009243381C9243000192480002924C0059924C490092484D0092433B1C9243000392480003924C0056924C4D0092484D009245431A9248000592450000924C0059924C480092484E0092453D1F9245000092480000924C0059924C480092484F009245421C92450003924C000192480058924C450092484D0092453C1D92450001924C000492480056924C430092484B009243482192430000924C000392480054924C460092484E0092433B1B924C00049243000192480058924C490092484D0092433B1E924C00039243000192480056924C480092484D0092433B1D9243000392480001924C0057924A4200924751009243351892430001924A00019247005E924A460092474E009243411A92470003924A000592430056924A5100924758009243431B92470004924A000192430058924A480092474F0092433D1F9243000092470003924A0056924A5600924756009243421D9243000292470002924A0057924A51009247560092433E1C92430001924A000292470059924A540092475400924340199247000192430002924A005C924A5300924758009243371D92430002924A000192470058924C53009248580092433D17924C00079248000292430058924C430092484F0092433B19924C00049243000392480058924C4F00924856009243431F9248000292430000924C0057924C5A0092485A0092434B1992480004924C00059243005692485300924553009241451A9245000392480003924100589248580092455A009241451892480003924500049241005992485100924554009241431F9245000192410001924800579248530092455A009241451D924500019241000192480059924863009245610092414D1B92450002924800029241005992485A009245630092414A1D9248000392410002924500569248580092455C0092414D1E9248000192450002924100579248560092455A009241441D924100049245000392480054924A73009247770092435C259243000492470000924A008147924A7F0092477F00924370810E924300039247000B924A00814C924C63009248630092434922924C000392480001924300814A924C580092485C0092434A1E924C000492480002924300814C924C5A009248610092434E1F9243000092480002924C00814F924C5A0092485E0092434E1E9248000392430003924C00814C924C5C009248630092434E2192430002924C0003924800814A924C54009248610092434B229248000192430003924C00814A924A5E009247660092434B1F9243000292470003924A00814C924A63009247630092434B2192430000924A0003924700814C924C5A0092485E0092434B22924C000292430000924800814C924C61009248610092434E219243000292480002924C00814B924A58009247660092434B1F92430003924A0002924700814C924A5100924758009243451E92430005924A0003924700814A924A5100924756009243462492430005924A00019247008146924C460092484D009243362792430003924C00039248004B924C690092485E0092435C1492480005924C00039243008154924C7F0092487F0092437C579243000792480004924C008206924C4F00924849009243351D9243000992480000924C00814A924C4800924843009243342192430001924C0004924800814A924C4D009248490092433D2192430000924C0001924800814E924C540092484B0092433B219243000092480002924C00814D924C410092484100924335259243000392480002924C008146924C440092484100924339259243000292480004924C008145924A5E0092475A009243441E9243000192470005924A00814C924A4F0092474D0092433D239243000292470000924A00814B924C4B0092484B0092433B1F924C000292430003924800814C924C5800924854009243462192430003924C0002924800814A924C5300924856009243431C924C000692430000924800814E924C4B0092484F00924340229243000492480001924C008149924C5A0092485E0092454F20924C000292450002924800814C924C5600924851009245492192480002924C00049245008149924A630092475E0092434D1F92470002924A0001924300814E924A5400924754009243411E9243000192470000924A008151924C4E0092484F009243381B92430000924C00049248008151924C4900924849009243391B924C0002924300019248008152924C5400924853009243401B9243000392480000924C008152924C45009248460092433725924C0002924300019248008148924C4F009248540092433F209243000692480001924C008149924C4D0092484D0092433A2092430007924C00019248008148924C5400924851009245401E9245000592480003924C00814A924C58009248560092454B219248000292450000924C00814D924C4500924845009243391F924C000192430004924800814C924C4A0092484B0092433B219243000192480002924C00814C924C530092485C009245531D9248000392450000924C008150924C5600924853009245441D9245000192480001924C008151924A54009247540092433E19924A0002924300039247008152924A5400924758009243441D924A000392470002924300814E924C580092485C009245461892450006924C000292480058924C5A009248580092454B1B9248000292450002924C0059924C580092485E009245451992450002924C00029248008153924C4D009248580092434018924C0006924300019248008151924C4F009248510092433B1A92430005924C0005924800814C924C4A0092484D0092433A1B9243000292480001924C008152924C4500924844009243371D9248000292430001924C008150924C4B0092484B0092433A1F92430000924C0002924800814F924C4F00924851009245431B9245000192480002924C008152924C510092484F009245401D9245000392480000924C008150924C4F0092484B009245421B92480002924C00039245008150924C4D0092484D0092433D1E92430004924C0002924800814C924C44009248490092433A1D92430002924C0004924800559249350E9249006A924C5400924851009243401D9243000092480002924C008151924C4B0092484E0092433B1E9243000392480005924C00814A924C5600924853009243451E92430009924C000192480050924C660092486100924351219248000492430000924C00814B924A730092476C0092435E82209243000292470004924A0042924C4D0092484E0092434A1192480002924C00099243008154924C360092483E009243341D9248000292430002924C0057924C4200924845009243381C9243000192480002924C0059924C490092484D0092433B1C9243000392480003924C0056924C4D0092484D009245431A9248000592450000924C0059924C480092484E0092453D1F9245000092480000924C0059924C480092484F009245421C92450003924C000192480058924C450092484D0092453C1D92450001924C000492480056924C430092484B009243482192430000924C000392480054924C460092484E0092433B1B924C00049243000192480058924C490092484D0092433B1E924C00039243000192480056924C480092484D0092433B1D9243000392480001924C0057924A4200924751009243351892430001924A00019247005E924A460092474E009243411A92470003924A000592430056924A5100924758009243431B92470004924A000192430058924A480092474F0092433D1F9243000092470003924A0056924A5600924756009243421D9243000292470002924A0057924A51009247560092433E1C92430001924A000292470059924A540092475400924340199247000192430002924A005C924A5300924758009243371D92430002924A000192470058924C53009248580092433D17924C00079248000292430058924C430092484F0092433B19924C00049243000392480058924C4F00924856009243431F9248000292430000924C0057924C5A0092485A0092434B1992480004924C00059243005692485300924553009241451A9245000392480003924100589248580092455A009241451892480003924500049241005992485100924554009241431F9245000192410001924800579248530092455A009241451D924500019241000192480059924863009245610092414D1B92450002924800029241005992485A009245630092414A1D9248000392410002924500569248580092455C0092414D1E9248000192450002924100579248560092455A009241441D924100049245000392480054924A73009247770092435C259243000492470000924A008147924A7F0092477F00924370810E924300039247000B924A00814C924C63009248630092434922924C000392480001924300814A924C580092485C0092434A1E924C000492480002924300814C924C5A009248610092434E1F9243000092480002924C00814F924C5A0092485E0092434E1E9248000392430003924C00814C924C5C009248630092434E2192430002924C0003924800814A924C54009248610092434B229248000192430003924C00814A924A5E009247660092434B1F9243000292470003924A00814C924A63009247630092434B2192430000924A0003924700814C924C5A0092485E0092434B22924C000292430000924800814C924C61009248610092434E219243000292480002924C00814B924A58009247660092434B1F92430003924A0002924700814C924A5100924758009243451E92430005924A000392470000FF2F004D54726B000002B900C3388D10934F7F00934C7F0093487335934C000293480002934F00D84F934F690093537F0093567F1D9353000493560000934F001B934F580" "09353630093566654934F0002935300029356005C93537C0093567000934F7718934F00059353000493560057934F770093537F0093567F8212934F00059353000B93560046934F660093567300935373159353000493560003934F00209353400093565600934F4A0F935300079356002693536E0093566E8208934F0015935300079356004493567000934F6300935373199353000093560004934F001F9356690093536300934F58179356000093530003934F002293567F0093537F00934F70822093530004934F000293560042934F610093536C009356701993530003934F00049356005893567F00934F6C0093537F1B9353000293560001934F005A93566600934F5C009353661B93530000934F000093560021934F6C1E934F001E93567C0093537F1D9353000093560081894B934F690093537F0093567F1D9353000493560000934F001B934F58009353630093566654934F0002935300029356005C93537C0093567000934F7718934F00059353000493560057934F770093537F0093567F8212934F00059353000B93560046934F660093567300935373159353000493560003934F00209353400093565600934F4A0F935300079356002693536E0093566E8208934F0015935300079356004493567000934F6300935373199353000093560004934F001F9356690093536300934F58179356000093530003934F002293567F0093537F00934F70822093530004934F000293560042934F610093536C009356701993530003934F00049356005893567F00934F6C0093537F1B9353000293560001934F005A93566600934F5C009353661B93530000934F000093560021934F6C1E934F001E93567C0093537F1D9353000093560000FF2F004D54726B0000067B00C430AA1894434E7F94455E0D94430068944754139445005F9447000A94486181719448000894454F81539448630B944500833D944800119440587F944854029440006B944800029445566D9445000194434D81009445580E944300834C9445000A94406681719440000594485C816D944553049448008258944500089443616F94430006944A5E6F944A0008944858679448000594454A810094434B019445007C9445530B9443008239944500823194484A03944C4F0094433E1C944C000294480005944300814E94484E0094434302944C532394480001944C0000944300814394485400944C51039443462294430003944C000094480081449448480194434102944C43229448000294430001944C0081469443430094484E01944C4A289443000294480003944C00814594484E00944C4603944545229445000194480002944C00814894484F0094454200944C4E2494480003944C000094450081499448510394454201944C4B1E944C000194450001944800814494484205944C3E029443331E94430003944C0002944800813E9448400394433500944C3F2294430005944C0000944800814494484A00944C4E0394433D2494430003944C0000944800814594484B0194433F00944C492C94430002944C000194480081399448430394433700944C402A94430006944C0001944800814F94475E03944A5400944346199447000294430001944A00814794474B0194433C00944A43209443000394470002944A00A43594484F6D944800039443426394454B08944300409445002794453D81019445000E94434E827D94454F11944300599448540A9445002E9448003694484167944800189445536594484D049445007B944A5C0E9448008115944A00824C944C5E61944C0010944A6369944A000894484B75944C5A0594480064944C0008944A458277944A0006944C4F6D944F6903944C0035944F0042944F5E66944F000F944C5172944A4A04944C007794485A12944A0020944800814A94485300944C6300944F633E944F0002944C00039448009C4294434979944546129443006B94475114944500699448540A94470081639448001094455C816494485A04944500833E9448000A94404A6F94484F089440007794453E0D9448005F94450004944345779445481294430083489445000A94404D817E9440000294485A81659448000894454F82559445001194435A6794430008944A5375944A000694485865944800099445538103944341029445007194454F10944300834D94450010944054815F9440000994484E81719448000894455681649445000A94404A81439440002294404B81059443460E9440006994454A0C944300813E94450021944543833594450035944C548144944C0024944A6377944A00029448566F944A5E0D944800814E944A001194435E816F94455303944300689445001794484869944A54169448008136944A002A944A4D8326944A003594432901944A2A0394472D83199447000394430027944A001294453105944C2902944836831094450003944C00049448003F9448440394433C03944C3F831994480018944C00009443002694432F0194474B02944A45830694430039944A00039447002994473C08944A4900944335831F9447000C944A00029443002694433107944C3F0294485483029448001D94430011944C002594454A059448400294413E8146944100039445000A9448002B944C4F039443330594483D04944A3107944A00850494480037944C002494430081609447730394436100944A6C4D9447000794430004944A00820B94483A0194433502944C392E9448000194430002944C0081399448480394433D01944C422A944C000094430002944800813C94483B03944C33009443332A94430004944C0001944800813E94484D0294433D00944C422994430002944C0003944800813194483903944C310294432C3694430003944C0001944800812D9443290794482202944A210B944D1900944C1917944D0002944C0002944A0003944800049443005F94484E01944C4F0294433C65944C0002944300039448007794433B0094474D00944A4B3494470002944A00039443008123944C40810B944A420E944C0055944A00049448398101944C4B1094480071944A510E944C008300944A000A944C5367944F4E02944C0005943B3402943E2F0094372D8560943B0026943E003B944F001E943700719448450394434900944C4A0794373A0394403600943C318D259443000F94480003944C000A9437000294400003943C0000FF2F004D54726B000003AA00C53A8F0095487F81319548003F95437081369543003A954577249545005495456C3E9545003A95435C7895455E3E9543000895450032954863219548005795487C339548004595457073954500059548635895480020954A698115954A00824B954C4F8141954C002F954A69814D954A0023954873699548000F954C5654954C0024954A586B954A000D95486C6B9548000D9545566795450011954A443F954A003995475E71954700079545567895435C0A9545008229954300812D95485181649548000C95455E814F9545002195485C831F954800419540585B9540001D9548515D9548001B95455E6B9545000D954354789545530D95430083269545002D95405E813D9540003395485C814A954800269545668268954358029545005295430024954A6168954A001095485E5B9548001D95455478954354039545007595456105954300835B95406C0A95450081319540003595485881359548003B95456181479545002995406381359540003B954058789543660A954000379543003795457381379545003995455C831D95450043954C5E8135954C003B954A6C74954A000495486C2C9548004C954A73814F954A0021954369817095456C159543006395485E039545003195480044954A63813F954A0031954A5C8249954A001F954061219540005795405867954000119543612895430050954363349543004495435E3A9543003E9545772D9545004B95456C4D9545002B95435E789545700C954300219545004B95487F289548005095487F5295480026954A5E009545662B954A0026954500811F9547776D9547000B95455C6E9545000A9543568170954A660A95430018954A0056954A7051954A002795486678954A690195480036954A0041954C773B954C003D954C6137954C0041954A6C71954A00079548665B9548001D954566359545004395454E5F954500199548694D9548002B9548397895480000954A6971954A000795486C689548001095455A76954500029548616A9548000E95435C0095435E1B95430000954300834595487F579548002195437C4B9543002D954577239545005595457C3095450048954369826795430001954577369545004295487724954800549548693195480047954566599545001F9548705195480027954A7C8251954A00810F954C7C5E954C001A954A5845954A00339548704B9548002D954C663D954C003B954A618268954C5E05954A0044954C002F954F7729954F004F954F7F26954F0052954C735F954C0019954A6C7895486903954A004995480000FF2F004D54726B00000031C91099226513992200BF4D99224C11992200D96F99226515992200BF4B99224C12992200AC6E99224C1399220000FF2F00";
const char* Lyrics[] = {"没有共产党就没有新中国","没有共产党就没有新中国","共产党辛劳为民族","共产党他一心救中国","他指给了人民解放的道路","他领导中国走向光明","他坚持了抗战八年多 他改善了人民生活","他建设了敌后根据地 他实行了民主好处多","没有共产党就没有新中国","没有共产党就没有新中国","没有共产党就没有新中国","没有共产党就没有新中国","共产党辛劳为民族","共产党他一心救中国","他指给了人民解放的道路","他领导中国走向光明","他坚持了抗战八年多 他改善了人民生活","他建设了敌后根据地 他实行了民主好处多","没有共产党就没有新中国","没有共产党就没有新中国"};
int SleepTime[] = {4000,4000,4000,4000,4000,4000,4000,4000,5000,4000,4000,4000,4000,4000,4000,4000,4000,4000,5000,4000};
char* Pointer = NULL;

void Pos(int x, int y);

void PrintLyrics();

void InitializeMusic();

void MusicFileCreate(TCHAR* n);

void PlayMusic();

void PrintASCII();


int main()
{
system("color F4");

HWND hWnd = GetConsoleWindow(); //获得cmd窗口句柄
SetWindowPos(hWnd, NULL, 0, 0, 1500, 800, NULL);

PrintASCII();
Pos(88, 4);
cout << "献礼二十大——代码献礼";
Pos(88, 6);
cout << "作者: WinkySpeed";
Pos(135, 4);
cout << "Loading...";
InitializeMusic();
PlayMusic();
PrintLyrics();
free(Pointer);
Pos(135, 47);
system("pause");

return 0;

}



void Pos(int x, int y)
{
COORD pos;
HANDLE hOutput;
pos.X = x;
pos.Y = y;
hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOutput, pos);
return;
}

void PrintLyrics()
{
Pos(135, 4);
cout << "没有共产党就没有新中国";

int n = sizeof(SleepTime) / sizeof(int);
int i = 0;
int j = 6;
while (i < n)
{
Pos(125, j);
Sleep(SleepTime[i]);
printf("%s", Lyrics[i]);
i++;
j += 2;
}

Sleep(10000);
}

void InitializeMusic()
{
int length = (int)(strlen(MIDImusic));
Pointer = (char*)malloc(length / 2);

char temp[2];

for (int i = 0; i < length; i += 2)
{
temp[0] = *(MIDImusic + i);
temp[1] = *(MIDImusic + i + 1);
long tmp = strtol(temp, 0, 16);
if (Pointer)
{
Pointer[i / 2] = (char)tmp;
}

}
}

void MusicFileCreate(TCHAR* n)
{
HANDLE p = CreateFile(n, 1 << 30, 1, 0, 3, 1 << 7, 0);
WriteFile(p, Pointer, ((int)(strlen(MIDImusic)) / 2), 0, 0);
CloseHandle(p);
}

void PlayMusic()
{
TCHAR Path[260];
TCHAR Name[260];
TCHAR temp['-' << 2] = { 0 };
GetTempPath(260, Path);
GetTempFileName(Path, TEXT("CCP"), 0, Name);
wcscpy(temp, Name);
wcscat(temp, L".mid");
MoveFile(Name, temp);
MusicFileCreate(temp);
HWND MCImusic;
MCImusic = MCIWndCreate(GetForegroundWindow(), GetModuleHandle(0), WS_CHILD | 8, temp);
if (MCIWndCanPlay(MCImusic))
{
MCIWndPlay(MCImusic);
}
}


void PrintASCII()
{
printf(" \n"
" \n"
" \n"
" \n"
" .75Iv:. \n"
" .uBBBBQg1: \n"
" iRBBBBBQK: \n"
" 5QBBBBBQZ: \n"
" 1BBQMBBBB2 \n"
" :. RQBgMgBBBS \n"
" .LQBB5 7BBggZMQBBu \n"
" .QBBQMQBBBBBQQBQ7 BBgDZggBBB. \n"
" KBBQBBBBBQMggDgMBBB RBMgEDDRBBL \n"
" 7BBQDgDgZgDgEDZgMBQq QBgDEDZgQBP \n"
" :BBQgZgZgEgEDZgZMQBM. BBgDZDEgMBM \n"
" ZBBggZDZDEgEgEggQBBi QBZDEDZgMBd \n"
" jBBQDgEgZDEgEDEgZQBY iBRZDZgEgMBY \n"
" iQBQgZgEDZDEDZDEgZRQ QQgZDZgZgQB \n"
" .QQBggEDEDZDZDEgEgZDDBZ: .BggEDZgZgQQ \n"
" KBBRDDZDEgZgEDZgZDZDZDDBQg BBZDEDEDZRB: \n"
" sBBQgDDEgZDZDZgZgZgEDEDEgDQBB1 UBgZDEDZDgBd \n"
" KBBMMZgEDEDEggBBRggZDZDZgZgQBBr :BgDEDZDZgQB \n"
" PBBRDgZgDMQBgPBBggEDEDEDZggBBB. BREDZDZDZQB. \n"
" .BQBgggQBBs :BBQMZDEDZDEDDRBBK BRgZgZDZDgB: \n"
" 7QBQBBP vBBQDDZgZgZgZgRBBL BQZDEDZDEMBi \n"
" SBB: PBBggZDZDZDEggBBB: .BggZgEDZggB: \n"
" . .QBBMZDEgZDZgDRBBg YBMZDEDEDERB. \n"
" iBBQggEDEDZgEgMBBI BBZgZDEDZgQB \n"
" UBBMgZDEDEgEDDBBBi rBgDEgEDEDgBd \n"
" DBBMDgEgEDZDZMBBQ. BQgZDZDEDERB: \n"
" :BBBDgEDEDZDZggBB5 QBMZgEDZgZgBQ \n"
" .r vBBMgDgEgZgZgDRBBBMZDEgZgZgQB. \n"
" 2BBM. XBBRDDZDZgZDDgDgZgEgZDEgMBY \n"
" 7BBQQBBg: .QBBggZDEDEDEDZDEDEDEgMBb \n"
" BBBMgDMMBBB7 iQBgDZDZgEgZDZDEDEDDBg \n"
" .BQBgDEDDRBBBMr 7BZDZDEDEDEDZDEDZBj \n"
" sBBDDEDEggQBBBBXr. .rKRgEgEDZgEgZgEDEgQP \n"
" KQZgZgZgDggRBBBBBBb17i.. ..ivqQBBBBgEgEgZDZDEDZDEDZgBBq \n"
" :vurPQDEgDgZgEgEgZgMBBBBBBBBBBBBBBBBBBBQMggZgEgEDEDEDEgEgEDEMRBB1 \n"
" .BBBBBQgDgBBQBggZDZDEgZDZgDMgMMRMRgRgMggZgZgZDZDZDZgDQggEDEDEDEggBBB \n"
" BBRDgZgEgBj.PBBBBggDgZgEgZDZgEDZDZDZgZDZgEDZDEDZggBBBQBBRDDEDZgMBBK \n"
" 7BQDDEgZgRB rRQBBBQMggZgZgZDZgZDZDEDEDZgDggMMBBBBD: :BBBDgDMBBg \n"
" BBQggDMRBB :SBBBBBBBQgMggDggMDgggMRQBBBBBBP: uBBQBBB: \n"
" BBBBBBBD :vPRBBBQBBBBBBBBBBBQBBgji ZBBJ \n"
" ivvi .:r7v7v77i:. :. \n");
}

/*
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
*/





参考资料

『整活』当你把C语言代码写成炮姐的样子

code_in_paojie

利用windows自带api接口来播放midi音乐