相对路径与绝对路径之比较
绝对路径很简单,但是隐患比较大,如果程序位置有变动,就会出现找不到文件的问题。使用起来也比较简单。如
CString strPath = L""; strPath += "d:\\work\\1.avi";//这就是绝对路径
相对路径使用起来最方便,不用担心程序的位置变化引起的故障。
从IDE环境运行程序的时候,默认当前路径是工程项目所在路径,也就是dsp文件,sln文件所在路径。
//读取配置文件 CString strflash,strVideo; CString des = L""; ::GetCurrentDirectory(_MAX_PATH,des.GetBuffer(_MAX_PATH));//获取程序当前路径 des.ReleaseBuffer(); des += "\\Config.ini";//读取配置文件,里面有要提取的文件名 //打开视频,循环播放 ::GetCurrentDirectory(_MAX_PATH,strflash.GetBuffer(_MAX_PATH)); strflash.ReleaseBuffer(); strflash += "\\1.swf";//打开视频文件 m_flash.LoadMovie(0,strflash);//绝对路径,这个必须用绝对路径,函数要求是绝对路径 m_flash.Play(); m_flash.SetWindowPos(&CWnd::wndTopMost,rect1.left,rect1.top,rect1.Width(),rect1.Height(),SWP_SHOWWINDOW); //打开投影要播放的视频 GetPrivateProfileString(L"video"/*字段名*/,L"video"/*键名*/,L"1.avi"/*键值*/,strVideo.GetBuffer(_MAX_FNAME),_MAX_FNAME,des); strVideo.ReleaseBuffer(); m_pMovie = new CMovie(m_hWnd); m_pMovie->Open(strVideo.GetBuffer()); strVideo.ReleaseBuffer();
配置文件的格式要为
[SWF] //字段名 Swf=1.swf//键名及键值 [video]//字段名 video=1.avi//键名及键值
获取配置文件中的条目
DWORD GetPrivateProfileString(lpszSection, lpszKey, lpszDefault, lpszReturnBuffer, cchReturnBuffer, lpszFile);
其中
LPCTSTR lpAppName ------- INI文件中的一个字段名
LPCTSTR lpKeyName -------- lpAppName 下的一个键名,也就是里面具体的变量名
LPCTSTR lpString ---------是键值,也就是变量的值, 必须为LPCTSTR或CString类型
LPCTSTR lpFileName --------完整的INI文件路径名
LPCTSTR lpDefaut ----------如果没有其前两个参数值,则将此值赋给变量
LPSTR lpReturnedString --------接收INI文件中的值的CString对象,即接收缓冲区
DWORD nSize ------接收缓冲区的大小
如果需要读取多个视频文件,则可以这样处理
1 for(int i=0;i<VIDEO_NUMBER;i++)//读取视频文件 2 { 3 CString strNum = L"";//变量名 4 CString strVideoNumber = L"";//键值 5 strVideoNumber.Format(L"video%d",i); 6 strNum.Format(L"%d.avi",i); 7 GetPrivateProfileString(L"video",strVideoNumber,strNum,strVideoPath[i].GetBuffer(_MAX_FNAME),_MAX_FNAME,des); 8 strVideoPath[i].ReleaseBuffer(); 9 m_pMovie[i] = new CMovie(m_hWnd);//m_hWnd 为CWnd声明的public成员变量 10 m_pMovie[i]->Open(strVideoPath[i].GetBuffer()); 11 strVideoPath[i].ReleaseBuffer(); 12 }
其中
#define VIDEO_NUMBER 6 //视频的数量
CString strVideoNumber[VIDEO_NUMBER];//存放对应视频文件的键值
CMovie *m_pMovie[VIDEO_NUMBER];//定义的流媒体操作对象
本文来自博客园,作者:struggle_time,转载请注明原文链接:https://www.cnblogs.com/songliquan/p/3261504.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?