VC读写ini文件(第三方开源类)

网友投稿 711 2022-09-19

VC读写ini文件(第三方开源类)

VC读写ini文件(第三方开源类)

Windows自带的也有几个API函数,比如GetPrivateProfileString、WritePrivateProfileStrinig等函数,使用起来确实不方面....   就在很久前就看到了下面这样一个三方类,很方面的,而今很多友友在寻找这方面DEMO,所以再次贴来出现大家分享! // *************************************************************** // OPini.h: interface for the COPini class. // ------------------------------------------------------------- // 这个类用来读取exe下ini文件的内容。 // ------------------------------------------------------------- // *************************************************************** #if !defined(AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_) #define AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include class COPini { public: static DWORD ReadString (char *section, char * key, char stringtoread[], char * filename); static BOOL WriteString(LPCTSTR section, LPCTSTR key,char* stringtoadd, char *filename); COPini(); virtual ~COPini(); }; #endif // !defined(AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_)   // OPini.cpp: implementation of the COPini class. // // #include "stdafx.h" #include "OPini.h" /******************************************************************** filename: // OPini.cpp file path: file base: // OPini file ext: // cpp author: // alantop purpose: // 读取INI文件。 *********************************************************************/ // // Construction / Destruction // COPini::COPini() { } COPini::~COPini() { } /***************************************************************************** Function: // Description: // 写字符串到INI文件 Calls: // Called By: // Table Accessed: // Table Updated: // Input: // Output: // Return: // 成功返回真,失败返回假.失败后,可用DWORD GetLastError(VOID) 查询失败原因。 Others: // author: // alantop ******************************************************************************/ void error(LPSTR lpszFunction) { CHAR szBuf[80]; DWORD dw = GetLastError(); sprintf(szBuf, "%s failed: GetLastError returned %u/n", lpszFunction, dw); MessageBox(NULL, szBuf, "Error", MB_OK); ExitProcess(dw); } BOOL COPini::WriteString(LPCTSTR section, LPCTSTR key, char *stringtoadd, char *filename) { CHAR FilePath[255]; GetModuleFileName(NULL,FilePath,255); //Scan a string for the last occurrence of a character. (strrchr(FilePath,'//'))[1] = 0; strcat(FilePath,filename); return ::WritePrivateProfileString(section,key,stringtoadd,FilePath); } /***************************************************************************** Function: // Description: // 从INI文件中读取字符串 Calls: // Called By: // Table Accessed: // Table Updated: // Input: // Output: // Return: // 读取了多少个字节的字符 Others: // author: // alantop ******************************************************************************/ DWORD COPini::ReadString(char *section, char * key, char stringtoread[], char * filename) { CHAR FilePath[255]; GetModuleFileName(NULL,FilePath,255); (strrchr(FilePath,'//'))[1] = 0; strcat(FilePath,filename); return ::GetPrivateProfileString(section, key,NULL,stringtoread,255,FilePath); }   因为是静态函数,你可以直接使用作用域调用函数,具体使用方法,将上述文件添加到你的工程,然后引入头文件即可: #include int main() { char *p1 = "Hello"; char *p2 ; COPini::WriteString("配置信息", "选项1", p1, "setinfo.ini"); COPini::ReadString("配置信息" , "选项2", p2, "setinfo.ini"); ..... }   (在MFC程序中,你可以在初始化函数读取配置信息,在退出代码中写入配置信息即可)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:离线集成包
下一篇:EF SaveChanges重写加入日志(effective)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~