转载两个C程序 代码非原创,先记下来: 1、播放影音(VC6下通过) #include <windows.h> #include <stdio.h> #include <mmsystem.h> #include <shellapi.h> #include <AFXCOM_.H> #pragma comment(lib,"winmm.lib") void main() { char str[128]={0}; int i = 0; char buf[128]={0}; MCI_OPEN_PARMS mciOpen; MCIERROR mciError; mciOpen.lpstrDeviceType = "mpegvideo"; mciOpen.lpstrElementName = "G:\\My Videos\\MV\\Avril_Lavigne_-_Girlfriend_(Palladia)(1080p)-.mpg"; //在C盘根目录下放一首1.mp3,当然也可以将这里的路径换成你喜欢的 mciError = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,(DWORD)&mciOpen); if(mciError) { mciGetErrorString(mciError,buf,128); printf("%s\n",buf); system("pause"); } UINT DeviceID = mciOpen.wDeviceID ; MCI_PLAY_PARMS mciPlay; mciError = mciSendCommand(DeviceID,MCI_PLAY,0 ,(DWORD)&mciPlay); if(mciError) { printf("send MCI_PLAY command failed\n"); system("pause"); } for(i=1;i<=500;i++) { Sleep(500); printf("%d",i); } } 等以后弄明白了,也许会觉得这是雕虫小技吧。STUDING!!! 2012/6/2 2、统计文件夹代码行数(VC6下通过) /* win32下文件夹遍历 转载于http://www.cnblogs.com/slash/archive/2010/06/14/1758324.html 基本算法: void function(LPCTSTR lpszPath) { 开始查找 if(没有找到文件) return ; do { if(找到的是目录) function(找到的目录) else 对文件进行统计 } while(查找下一个文件并成功) } 用到的api函数和结构: FindFirstFile FindNextFile typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; // 文件属性 FILETIME ftCreationTime; // 文件创建时间 FILETIME ftLastAccessTime; // 文件最后一次访问时间 FILETIME ftLastWriteTime; // 文件最后一次修改时间 DWORD nFileSizeHigh; // 文件长度高 32 位 DWORD nFileSizeLow; // 文件长度低 32 位 DWORD dwReserved0; // 系统保留 DWORD dwReserved1; // 系统保留 TCHAR cFileName[ MAX_PATH ]; // 长文件名 TCHAR cAlternateFileName[ 14 ]; // 文件的可选名 } WIN32_FIND_DATA; */ #include<windows.h> #include<stdio.h> #include<string.h> void FindAllFile(LPCTSTR lpszPath); int row,file; int main(int argc, char **argv) { LPCTSTR path="E:\\Computer Programming\\OJ"; row=0; file=0; FindAllFile(path); printf("\n"); printf("共有%d个c/c++源文件,%d行代码\n",file,row); return 0; } void FindAllFile(LPCTSTR lpszPath) { TCHAR szFind[MAX_PATH]; lstrcpy(szFind,lpszPath); lstrcat(szFind,"\\*.*"); WIN32_FIND_DATA wfd; HANDLE hFind = FindFirstFile(szFind,&wfd); if(hFind==INVALID_HANDLE_VALUE) return ; do { //如果你所在的不是根目录,你将会看到“.”与“..”这两个目录——这是在资源管理器中看不到的。 //dos下一个点代表的是当前目录,两个点代表的是上一级目录。若查找的到的是当前文件夹和上一级文件夹,则忽略。 if(wfd.cFileName[0]=='.') continue; if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { TCHAR szFile[MAX_PATH]; wsprintf(szFile,"%s\\%s",lpszPath,wfd.cFileName); FindAllFile(szFile); } else { TCHAR szFile[MAX_PATH]; wsprintf(szFile,"%s\\%s",lpszPath,wfd.cFileName); FILE *fp; if((fp=fopen(szFile,"r"))==NULL) { printf("一个文件打开失败!\n"); } else { int len=strlen(wfd.cFileName); if(wfd.cFileName[len-1]=='c'&&wfd.cFileName[len-2]=='.'||wfd.cFileName[len-1]=='p'&&wfd.cFileName[len-2]=='p'&&wfd.cFileName[len-3]=='c'&&wfd.cFileName[len-4]=='.') { file++; printf("%s\\%s\n",lpszPath,wfd.cFileName); char data[1000]; while(fgets(data,1000,fp)!=NULL) row++; } } fclose(fp); } } while(FindNextFile(hFind,&wfd)); FindClose(hFind); }