INI文件的結(jié)構(gòu)很簡(jiǎn)單,就是那種帶段落的文本文件。每個(gè)段落用括號(hào)括起來,下面跟著一堆關(guān)鍵字=值的配對(duì)。比如:
KeyWord1 = Value1
KeyWord2 = Value2
...
然后是C相關(guān)的操作問題。大家都知道,C不像C++那樣自帶一套原生類庫(kù),它用的是.NET框架提供的統(tǒng)一類庫(kù)(.Net Framework SDK)。雖說這個(gè)類庫(kù)功能挺強(qiáng),但也不是啥都有,比如直接操作INI文件的功能就沒有。
這時(shí)候就得靠Windows系統(tǒng)自己帶的Win32 API了,具體就是WritePrivateProfileString和GetPrivateProfileString這兩個(gè)函數(shù)。它們藏在kernel32.dll里面。
問題是,C用的是托管代碼,而這些Win32 API是非托管代碼,不能像普通類庫(kù)那樣直接調(diào)用。不過好在.NET提供了個(gè)互操作機(jī)制,可以用來調(diào)用這些老函數(shù)。System.Runtime.InteropServices命名空間里的DllImport屬性就能搞定這事兒。
簡(jiǎn)單說,就是在C代碼里用DllImport來聲明一下這兩個(gè)API函數(shù),之后就可以用了。
KeyWord1 = Value1
KeyWord2 = Value2
...
然后是C相關(guān)的操作問題。大家都知道,C不像C++那樣自帶一套原生類庫(kù),它用的是.NET框架提供的統(tǒng)一類庫(kù)(.Net Framework SDK)。雖說這個(gè)類庫(kù)功能挺強(qiáng),但也不是啥都有,比如直接操作INI文件的功能就沒有。
這時(shí)候就得靠Windows系統(tǒng)自己帶的Win32 API了,具體就是WritePrivateProfileString和GetPrivateProfileString這兩個(gè)函數(shù)。它們藏在kernel32.dll里面。
問題是,C用的是托管代碼,而這些Win32 API是非托管代碼,不能像普通類庫(kù)那樣直接調(diào)用。不過好在.NET提供了個(gè)互操作機(jī)制,可以用來調(diào)用這些老函數(shù)。System.Runtime.InteropServices命名空間里的DllImport屬性就能搞定這事兒。
簡(jiǎn)單說,就是在C代碼里用DllImport來聲明一下這兩個(gè)API函數(shù),之后就可以用了。