VC CIni

简介:

//文件  1:  

None.gif #pragma  once  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif#include   " afxTempl.h "   
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif  class   CIni  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif  {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif private :  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     CString  m_strFileName;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif public :  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     CIni(CString  strFileName):m_strFileName(strFileName)  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif      {  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif     } 
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif public :  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif      // 一般性操作:   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif     BOOL  SetFileName(LPCTSTR  lpFileName);     // 设置文件名   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif     CString  GetFileName( void );   // 获得文件名   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif     BOOL  SetValue(LPCTSTR  lpSection,  LPCTSTR  lpKey,  LPCTSTR  lpValue, bool   bCreate = true );   // 设置键值,bCreate是指段名及键名未存在时,是否创建。   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif     CString  GetValue(LPCTSTR  lpSection,  LPCTSTR  lpKey);   // 得到键值.   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif     BOOL  DelSection(LPCTSTR  strSection);     // 删除段名   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif     BOOL  DelKey(LPCTSTR  lpSection,  LPCTSTR  lpKey);     // 删除键名   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif 
InBlock.gif 
InBlock.gif 
InBlock.gif 
InBlock.gif 
InBlock.gif 
InBlock.gif public :  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif      // 高级操作:   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif      int   GetSections(CStringArray &   arrSection);     // 枚举出全部的段名   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif      int   GetKeyValues(CStringArray &   arrKey,CStringArray &   arrValue,LPCTSTR  lpSection);     // 枚举出一段内的全部键名及值   
InBlock.gif 

InBlock.gif 
InBlock.gif 
InBlock.gif 
InBlock.gif 
InBlock.gif 
InBlock.gif     BOOL  DelAllSections();  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif
;  
None.gif
None.gif

//文件  2:  
None.gif#include  "StdAfx.h"  
None.gif
None.gif
None.gif
None.gif#include  "ini.h"  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif #define  MAX_ALLSECTIONS  2048     // 全部的段名  
None.gif
None.gif
None.gif
None.gif #define  MAX_SECTION  260     // 一个段名长度  
None.gif
None.gif
None.gif
None.gif #define  MAX_ALLKEYS  6000     // 全部的键名  
None.gif
None.gif
None.gif
None.gif #define  MAX_KEY  260     // 一个键名长度  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gifBOOL  CIni::SetFileName(LPCTSTR  lpFileName)  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     CFile  file;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     CFileStatus  status;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     if(!file.GetStatus(lpFileName,status))  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         return  TRUE;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     m_strFileName=lpFileName;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     return  FALSE;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif}
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gifCString  CIni::GetFileName( void)  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     return  m_strFileName;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif}
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gifBOOL  CIni::SetValue(LPCTSTR  lpSection,  LPCTSTR  lpKey,  LPCTSTR  lpValue, bool  bCreate)  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif {  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     TCHAR  lpTemp[MAX_PATH]  ={0};  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     //以下if语句表示如果设置bCreate为false时,当没有这个键名时则返回TRUE(表示出错)  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     
//!*&*none-value*&!*  这是个垃圾字符没有特别意义,这样乱写是防止凑巧相同。  
InBlock.gif

InBlock.gif
InBlock.gif
InBlock.gif     if  (!bCreate)  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         GetPrivateProfileString(lpSection,lpKey,"!*&*none-value*&!*",lpTemp,MAX_PATH,m_strFileName);  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         if(strcmp(lpTemp,"!*&*none-value*&!*")==0)  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              return  TRUE;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif     }
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     if(WritePrivateProfileString(lpSection,lpKey,lpValue,m_strFileName))  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         return  FALSE;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     else  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         return  GetLastError();  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif}
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gifCString  CIni::GetValue(LPCTSTR  lpSection,  LPCTSTR  lpKey)  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     DWORD  dValue;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     TCHAR  lpValue[MAX_PATH]  ={0};  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     dValue=GetPrivateProfileString(lpSection,lpKey,"",lpValue,MAX_PATH,m_strFileName);  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     return  lpValue;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif}
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gifBOOL  CIni::DelSection(LPCTSTR  lpSection)  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     if(WritePrivateProfileString(lpSection,NULL,NULL,m_strFileName))  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         return  FALSE;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     else  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         return  GetLastError();  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif}
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gifBOOL  CIni::DelKey(LPCTSTR  lpSection,  LPCTSTR  lpKey)  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     if(WritePrivateProfileString(lpSection,lpKey,NULL,m_strFileName))  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         return  FALSE;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     else  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         return  GetLastError();  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif}
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif int  CIni::GetSections(CStringArray&  arrSection)  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif {  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     /*  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     本函数基础:  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     GetPrivateProfileSectionNames  -  从  ini  文件中获得  Section  的名称  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     如果  ini  中有两个  Section:  [sec1]  和  [sec2],则返回的是  'sec1',0,'sec2',0,0  ,当你不知道      
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     ini  中有哪些  section  的时候可以用这个  api  来获取名称    
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif     
*/
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     int  i;      
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     int  iPos=0;      
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     int  iMaxCount;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     TCHAR  chSectionNames[MAX_ALLSECTIONS]={0};  //总的提出来的字符串  
InBlock.gif

InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     TCHAR  chSection[MAX_SECTION]={0};  //存放一个段名。  
InBlock.gif

InBlock.gif
InBlock.gif
InBlock.gif     GetPrivateProfileSectionNames(chSectionNames,MAX_ALLSECTIONS,m_strFileName);  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     //以下循环,截断到两个连续的0  
InBlock.gif

InBlock.gif
InBlock.gif
InBlock.gif     for(i=0;i<MAX_ALLSECTIONS;i++)  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         if  (chSectionNames[i]==0)  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              if  (chSectionNames[i]==chSectionNames[i+1])  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif                   break;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif     }
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     iMaxCount=i+1;  //要多一个0号元素。即找出全部字符串的结束部分。  
InBlock.gif

InBlock.gif
InBlock.gif
InBlock.gif     arrSection.RemoveAll();//清空原数组  
InBlock.gif

InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     for(i=0;i<iMaxCount;i++)  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         chSection[iPos++]=chSectionNames[i];  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         if(chSectionNames[i]==0)  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif         {        
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              arrSection.Add(chSection);  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              memset(chSection,0,MAX_SECTION);  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              iPos=0;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif         }
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif     }
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     return  (int)arrSection.GetSize();  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif}
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif int  CIni::GetKeyValues(CStringArray&  arrKey,CStringArray&  arrValue,  LPCTSTR  lpSection)  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif {  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     /*  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     本函数基础:  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     GetPrivateProfileSection-  从  ini  文件中获得一个Section的全部键名及值名  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     如果ini中有一个段,其下有  "段1=值1"  "段2=值2",则返回的是  '段1=值1',0,'段2=值2',0,0  ,当你不知道      
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     获得一个段中的所有键及值可以用这个。    
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif     
*/
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     int  i;      
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     int  iPos=0;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     CString  strKeyValue;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     int  iMaxCount;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     TCHAR  chKeyNames[MAX_ALLKEYS]={0};  //总的提出来的字符串  
InBlock.gif

InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     TCHAR  chKey[MAX_KEY]={0};  //提出来的一个键名  
InBlock.gif

InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     GetPrivateProfileSection(lpSection,chKeyNames,MAX_ALLKEYS,m_strFileName);  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     for(i=0;i<MAX_ALLKEYS;i++)  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         if  (chKeyNames[i]==0)  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              if  (chKeyNames[i]==chKeyNames[i+1])  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif                   break;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif     }
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     iMaxCount=i+1;  //要多一个0号元素。即找出全部字符串的结束部分。  
InBlock.gif

InBlock.gif
InBlock.gif
InBlock.gif     arrKey.RemoveAll();//清空原数组  
InBlock.gif

InBlock.gif
InBlock.gif
InBlock.gif     arrValue.RemoveAll();  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     for(i=0;i<iMaxCount;i++)  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         chKey[iPos++]=chKeyNames[i];  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         if(chKeyNames[i]==0)  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif         {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              strKeyValue=chKey;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              arrKey.Add(strKeyValue.Left(strKeyValue.Find("=")));  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              arrValue.Add(strKeyValue.Mid(strKeyValue.Find("=")+1));  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              memset(chKey,0,MAX_KEY);  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              iPos=0;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif         }
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif     }
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     return  (int)arrKey.GetSize();  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif}
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gifBOOL  CIni::DelAllSections()  
None.gif
None.gif
None.gif
ExpandedBlockStart.gif {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     int  nSection;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     CStringArray  arrSection;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     nSection=GetSections(arrSection);  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     for(int  i=0;i<nSection;i++)  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockStart.gif     {  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif         if(DelSection(arrSection[i]))  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif              return  GetLastError();  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedSubBlockEnd.gif     }
  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif     return  FALSE;  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif}
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif使用方法:  
None.gif
None.gif
None.gif
None.gifCIni  ini("c:\\a.ini");  
None.gif
None.gif
None.gif
None.gif int  n;  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
ExpandedBlockStart.gif /*获得值  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifTRACE("%s",ini.GetValue("段1","键1"));  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif
*/
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
ExpandedBlockStart.gif /*添加值  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifini.SetValue("自定义段","键1","值");  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifini.SetValue("自定义段2","键1","值",false);  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif
*/
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
ExpandedBlockStart.gif /*枚举全部段名  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifCStringArray  arrSection;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifn=ini.GetSections(arrSection);  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.giffor(int  i=0;i<n;i++)  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifTRACE("%s\n",arrSection[i]);  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif
*/
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
ExpandedBlockStart.gif /*枚举全部键名及值  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifCStringArray  arrKey,arrValue;  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifn=ini.GetKeyValues(arrKey,arrValue,"段1");  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.giffor(int  i=0;i<n;i++)  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifTRACE("键:%s\n值:%s\n",arrKey[i],arrValue[i]);  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif
*/
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
ExpandedBlockStart.gif /*删除键值  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifini.DelKey("段1","键1");  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif
*/
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
ExpandedBlockStart.gif /*删除段  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifini.DelSection("段1");  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif
*/
  
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
ExpandedBlockStart.gif /*删除全部  
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gifini.DelAllSections();  
InBlock.gif
InBlock.gif
InBlock.gif
ExpandedBlockEnd.gif
*/
  
None.gif
目录
相关文章
VC6和VS2005(VC8)各项目默认运行时库
VC6和VS2005(VC8)各项目默认运行时库
|
开发工具 Windows
[分享]总结:VC小知识!-1
说明: 获得notepad.exe的路径正规上来说用GetWindowsDirectory函数得到, 如果是调用 win95下的画笔,应该用访问注册表的方法获得其路径,要作成一个比较考究的程序,考虑应该全面点.
|
消息中间件 开发工具 Windows