资源简介
C语言写的音乐播放器,完整工程文件,有源码注释,带录音功能,在VC6,VC2010上测试可用!欢迎大家交流开发经验chj_macong@163.com

代码片段和文件信息
#include “stdafx.h“
#include
#include
#include “resource.h“
#include “music.h“
//OPENFILENAME 声明
#include
//滑块要加载的头文件 InitCommonControls
#include
#include
#define MAXFILELENGTH 4096
char * file = “D:\\musicFile.dat“;
TCHAR repeatFile[512];
BOOL repeatFlag = FALSE;
int reCount = 0;
int mCount = 0;
typedef struct{
int num; //序号
TCHAR musicfullpath[256];//全路径
TCHAR musicname[256]; //文件名
int musicsize; //文件大小
}musicFile;
int record_count = 0;
BOOL fileRead(musicFile *mfint i=0)
{
FILE *fp;
//char * file = “D:\\musicFile.dat“;
if((fp=fopen(file“rb“))==NULL)
{
return FALSE;
}
//偏移起点:SEEK_SET-文件开始处;SEEK_CUR-当前位置;SEEK_END-文件结尾
fseek(fpi*sizeof(musicFile)SEEK_SET);//找到fp文件的指定处
//读取指定处的数据块
if(fread(mfsizeof(musicFile)1fp)!=1)
{
fclose(fp);
return FALSE;
}
else
{
fclose(fp);
return TRUE;
}
}
BOOL fileWrite(musicFile *mfTCHAR *str)
{
FILE *fp;
//打开 ab-向尾部追加;wb-先将文件长度截为0,再写入
if((fp=fopen(filestr))==NULL)
{
//如果以str打开失败,可能磁盘已满或其他原因,然后将文件长度截为0再写入,首次写入
if((fp=fopen(file“wb“))==NULL)
{
if(fwrite(mfsizeof(musicFile)1fp)!=1)
{
fclose(fp);
return FALSE;
}
else
{
fclose(fp);
return TRUE;
}
}
}
//首次打开成功,直接转入此处开始追加的写,返回写入的数据块数=1
if(fwrite(mfsizeof(musicFile)1fp)!=1)
{
fclose(fp);
return FALSE;
}
else
{
fclose(fp);
return TRUE;
}
}
//弹出对话框,选择打开的文件,路径和文件名存放在fullPathName和fileName中
BOOL OpenFile(HWND hwnd)
{
TCHAR *p; //file name
int nLen = 0;
TCHAR fullPathNames[MAXFILELENGTH];
TCHAR szPath[100];
ZeroMemory(repeatFilesizeof(repeatFile));
reCount = 0;
OPENFILENAME ofn;
ZeroMemory(&ofnsizeof(ofn));
ofn.lStructSize = sizeof(ofn);
//单文件时fullPathNames为全路径,多文件时为所选文件的目录,占ofn.nFileOffset这么长,剩下的均为所选文件的文件名,用“0“隔开
ofn.lpstrFile = fullPathNames;
ofn.lpstrFile[0] = TEXT(‘\0‘);
ofn.nMaxFile = sizeof(fullPathNames);
ofn.lpstrFilter = TEXT(“*.mp3\0*.mp3\0*.wav\0*.wav\0ALL\0*.*\0“);
ofn.nFilterIndex = 1;
ofn.lpstrFiletitle = NULL;
ofn.nMaxFiletitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.hwndOwner = hwnd;
ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST |OFN_ALLOWMULTISELECT;
if (GetOpenFileName(&ofn))
{
//ofn.nFileOffset恒为所选文件目录的长度+1,无论单文件还是多文件这就统一了后续单(多)文件的处理方法
lstrcpyn(szPathfullPathNamesofn.nFileOffset); //目录,并多取了长度1
//ListBox_InsertString(GetDlgItem(hwndIDC_LISTBOX)-1fullPathNames);
szPath[ofn.nFileOffset] = ‘\0‘;
nLen = lstrlen(szPath); //去掉多出的长度1后的字符串长度
if( szPath[nLen-1] != ‘\\‘ ) //如果选了多个文件则必须加上‘\\‘
{
lstrcat(szPath TEXT(“\\“));
}
//把指针移到第一个文件
p =&fullPathNames[ofn.nFileOffset];// fullPathNames + ofn.nFileOffset;
TCHAR szFileNameTEMP[100]; //仅为一个完整歌曲目录
while(*p)
{
ZeroMemory(szFileNameTEMPsizeof(szFileNameTEMP));
lstrcat(szFileNameTEMPszPath); //+路径
lstrc
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2155520 2013-07-22 20:05 DJ Music\Debug\DJ Music.bsc
文件 102470 2013-07-22 20:05 DJ Music\Debug\DJ Music.exe
文件 112496 2013-07-22 20:05 DJ Music\Debug\DJ Music.ilk
文件 2602264 2013-07-17 09:41 DJ Music\Debug\DJ Music.pch
文件 197632 2013-07-22 20:05 DJ Music\Debug\DJ Music.pdb
文件 22151 2013-07-22 20:05 DJ Music\Debug\music.obj
文件 0 2013-07-22 20:05 DJ Music\Debug\music.sbr
文件 868 2013-07-22 17:58 DJ Music\Debug\resource.res
文件 60051 2013-07-17 09:41 DJ Music\Debug\StdAfx.obj
文件 474493 2013-07-17 09:41 DJ Music\Debug\StdAfx.sbr
文件 115712 2013-07-23 08:10 DJ Music\Debug\vc60.idb
文件 217088 2013-07-22 20:05 DJ Music\Debug\vc60.pdb
文件 4305 2013-07-17 09:41 DJ Music\DJ Music.dsp
文件 541 2013-07-17 09:16 DJ Music\DJ Music.dsw
文件 50176 2013-07-23 08:13 DJ Music\DJ Music.ncb
文件 250880 2013-07-23 08:13 DJ Music\DJ Music.opt
文件 2332 2013-07-23 08:11 DJ Music\DJ Music.plg
文件 338 2013-08-09 17:39 DJ Music\DJ Music.sln
..A..H. 8192 2013-08-09 17:39 DJ Music\DJ Music.suo
文件 766 2013-07-17 09:16 DJ Music\icon1.ico
文件 6528 2013-07-22 20:05 DJ Music\music.cpp
文件 304 2013-07-17 09:16 DJ Music\music.h
文件 1685 2013-07-17 09:16 DJ Music\ReadMe.txt
文件 20480 2013-07-23 08:11 DJ Music\Release\DJ Music.exe
文件 1939708 2013-07-23 08:11 DJ Music\Release\DJ Music.pch
文件 8225 2013-07-23 08:11 DJ Music\Release\music.obj
文件 868 2013-07-23 08:11 DJ Music\Release\resource.res
文件 230 2013-07-23 08:11 DJ Music\Release\StdAfx.obj
文件 41984 2013-07-23 08:11 DJ Music\Release\vc60.idb
文件 32632 2013-07-22 17:58 DJ Music\resource.aps
............此处省略10个文件信息
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论