代码非原创,先记下来:
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);
}