使用註冊表或者ini文件來保存和讀取程序的配置信息

咱們在編寫程序的過程當中,要保存一些用戶的設置信息。怎麼才能方便的保存和讀取呢?ide

通常咱們保存信息由兩個地方:1。註冊表  函數

                                           2。ni文件it

其實在vc中他們的實現都是同樣哦。io

  在應用程序類下的      * App::InitInstance()函數里加入下面的程序語句; class

#ifdef  使用ini文件保存test

char czProgName[MAX_PATH];file

CString czN;二進制

int  iNiValue=0; 程序

//GetModuleFileName()獲得程序的路徑及名稱di

iNiValue= GetModuleFileName(0,czProgName,MAX_PATH);

czProgName[strlen(czProgName)-3] = '\0'; 

strcat(czProgName,"ini"); //咱們的ini文件名是跟程序同名的,只是後綴不一樣

free((void*) m_pszProfileName);

m_pszProfileName =_tcsdup(_T(czProgName));

#else //使用註冊表文件來保存

free((void*)m_pszRegistryKey);

m_pszRegistryKey = 「My test App」;

#endif

加入上面的語句之後,咱們就能夠在須要的地方直接用:

固然在使用的時候要定義:  

CWinApp* theApp = NULL;

theApp = AfxGetApp();

theApp ->WriteProfileString( , ,)函數寫入ini文件.

在須要讀寫的地方直接用  :

UINT GetProfileInt(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault);

BOOL WriteProfileInt(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue);

固然在讀取整數的時候,咱們能夠分別用

CString GetProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry,
            LPCTSTR lpszDefault = NULL);

BOOL WriteProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry,
            LPCTSTR lpszValue);

讀取二進制數值時候用以下:

BOOL GetProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry,
            LPBYTE* ppData, UINT* pBytes);

BOOL WriteProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry,
            LPBYTE pData, UINT nBytes);

具體請參考MFC下面的APPUI3.cpp

相關文章
相關標籤/搜索