资源简介
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个文件信息
相关资源
- 家族关系查询系统
- 嵌入式web服务器boa_C语言/Python + HTML
- C++PCM音频格式录音
- 《数据结构题集C语言版》严蔚敏,吴
- 24 个C语言项目案例分析源码+使用说明
- 蒙特卡洛积分方法 C语言
- 安徽大学操作系统实验四主存空间的
- C语言程序设计课程教学课件
- 谭浩强C语言第四版全套课件
- Simplorer中C语言嵌入
- 数据结构大作业 快递系统 C语言
- 功能完善的俄罗斯方块程序(C语言编
- 数据结构C语言版第2版源代码
- C语言C++常见面试题含答案 (1).pdf
- 队列应用银行排队问题模拟:计算客户
- C语言核心技术英文版
- C语言实现基于winsock的ftp客户端程序
- 自制编程语言基于C语言郑钢源代码
- 数据结构C语言版第2版课后习题答案
- 华为技术有限公司C语言编程规范110
- C语言编程经典200
- 数据结构课程设计 职工管理系统 c语
- 常用算法程序集(C语言描述) (PD
- 轻松玩转AVR单片机C语言
- Apache2.2-win32-x86
- C语言基于SDL的贪吃蛇项目
- Fast ANN神经网络算法源码
- 郝斌C语言详细笔记 附源码91146
- MFC+Access图书馆管理系统
- 谭浩强《C语言程序设计》考研考点讲
评论
共有 条评论