您的位置:首页 > 编程语言

MFC相关函数代码

2015-11-05 15:25 351 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u014509201/article/details/49663371 

//获取配置文件DeviceConfig.ini的绝对路径

static intGetIniFile(LPSTR FIniFileName)

 {

         TCHAR szPath[MAX_PATH];

         CHAR szPath1[MAX_PATH];

         ZeroMemory(szPath,MAX_PATH);//将数组中数据置零

         memset(szPath1,0,MAX_PATH);

         if(GetModuleFileName(NULL,szPath,MAX_PATH))

//获取当前进程已加载模块的文件的完整路径,该模块必须由当前进程加载(第一个参数为NULL,则该函数返回该应用程序全路径)

//第二个参数,指定一个字符串缓冲区,用来存放装载到缓冲区的最大字符串(数量为MAX_PATH)

         {                                                                                                                                              (_tcsrchr(szPath,TEXT('\\')))[1] =0; 

//等价于char*ch = _tcsrchr(szPath, _T('\\'));查找最后一个\出现的位置,并返回\之前的字符(包括\);

//ch[1] = 0;//NULL 通过操作将szPath截断,截断最后一个\后面的字符(不包括\)

                   lstrcat(szPath,TEXT("DeviceConfig.ini")); //该函数将一个字符串附加在另一个字符串后面

                   WideCharToMultiByte(CP_ACP,0,szPath,lstrlen(szPath),szPath1,255,NULL,NULL);

//该函数映射一个unicode字符串到一个多字节字符串(将szPath中的内容转换后存入szPath1中)

         }

         else

         {

                   return-1;

         }

         if(GetFileAttributes(szPath))//为一个指定的文件或目录返回文件系统的属性

         {

                   intlen = lstrlen(szPath);

                   strcpy(FIniFileName,szPath1);//得到配置文件DeviceConfig.ini的绝对路径

                   return0;

         }

         else

         {

                   return-2;

         }

}

 

 

//读取配置文件

Int GetIniString()

{

         intlRet = -1;

         charConfigName[MAX_PATH] = {0};

         charszLogicName[MAX_PATH] = {0};

         lRet= GetIniFile(ConfigName);

         if(lRet== 0)

         {

                   //DWORDGetPrivateProfileString(lpszSection, lpszKey, lpszDefault,lpReturnedString,cchReturnBuffer, lpszFile)

                   //为初始化文件中指定的条目取得字串

                   /*

                   lpApplicationNameString,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表。

 

                   lpKeyNameString,欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表

 

                   lpDefaultString,指定的条目没有找到时返回的默认值。可设为空("")

 

                   lpReturnedStringString,指定一个字串缓冲区,长度至少为nSize

 

                   nSizeLong,指定装载到lpReturnedString缓冲区的最大字符数量

 

                   lpFileNameString,初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件

                   */

                   GetPrivateProfileStringA("Device","LogicName","Jandar_GlyDevice",szLogicName,100,ConfigName);

         }

         else

         {

                   gotoEND;

         }

END:

         returnlRet; //此语句在goto是否发生时,都会执行;END只是一个标示符。

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: