最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 使用動(dòng)態(tài)庫(kù)DllImport("kernel32")讀寫ini文件的步驟

 更新時(shí)間:2023年05月19日 10:24:38   作者:未聞花開  
kernel32.dll是Windows中非常重要的32位動(dòng)態(tài)鏈接庫(kù)文件,屬于內(nèi)核級(jí)文件,這篇文章主要介紹了C# 利用動(dòng)態(tài)庫(kù)DllImport("kernel32")讀寫ini文件,需要的朋友可以參考下

1 ini文件讀寫

kernel32.dll是Windows中非常重要的32位動(dòng)態(tài)鏈接庫(kù)文件,屬于內(nèi)核級(jí)文件。它控制著系統(tǒng)的內(nèi)存管理、數(shù)據(jù)的輸入輸出操作和中斷處理,當(dāng)Windows啟動(dòng)時(shí),kernel32.dll就駐留在內(nèi)存中特定的寫保護(hù)區(qū)域,使別的程序無法占用這個(gè)內(nèi)存區(qū)域。

為什么要來討論讀寫ini文件呢,難道有數(shù)據(jù)庫(kù)我們就不用讀寫文件了嗎,什么數(shù)據(jù)都從數(shù)據(jù)庫(kù)讀取出來嗎,有些東西是根據(jù)客戶的習(xí)慣,就沒必要去讀取數(shù)據(jù)庫(kù)了,或者說,比如你要做一個(gè)記住密碼的功能,如果在web端,你還可以用cookie這東西,但是要是winform呢,這時(shí)候ini文件就可以派上用場(chǎng)了。我們可以把用戶和密碼存在ini文件里。

注意事項(xiàng):

  • ini文件路徑必須完整
  • 可將ini放在程序所在目錄,此時(shí)IpFileName參數(shù)為“.\FileName.ini”

2 方法

(1)GetPrivateProfileInt :使用該方法可獲取ini類型數(shù)據(jù),未獲取到時(shí)則會(huì)取設(shè)置的默認(rèn)數(shù)據(jù)

UINT WINAPI GetPrivateProfileInt
(
_In_LPCTSTR lpAppName, //ini文件中區(qū)塊名稱
_In_LPCTSTR lpKeyName, //鍵名
_In_INT nDefault, //默認(rèn)值
_In_LPCTSTR lpFileName //ini文件路徑
);

(2)GetPrivateProfileString:使用該方法可獲取string類型數(shù)據(jù),未獲取到時(shí)則會(huì)取設(shè)置的默認(rèn)數(shù)據(jù)

UINT WINAPI GetPrivateProfileString
(
_In_LPCTSTR lpAppName, //ini文件中區(qū)塊名稱
_In_LPCTSTR lpKeyName, //鍵名
_In_INT nDefault, //默認(rèn)值
_In_LPSTR lpReturnedString,//接受ini文件中值的CString對(duì)象,指定一個(gè)字符串緩沖區(qū),長(zhǎng)度至少為nSize
_In_DWORD nSize,//指定裝載到IpReturnedString緩沖區(qū)的最大字符數(shù)
_In_LPCTSTR lpFileName //ini文件路徑
);

(3)WritePrivateProfileString:向ini中寫值,所以僅有寫入string就足夠了

BOOL WritePrivateProfileString(
LPCTSTR lpAppName,//ini文件中區(qū)塊名
LPCTSTR lpKeyName,//鍵名
LPCTSTR lpString,//鍵值
LPCTSTR lpFileName
);

3 例子

using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows;
namespace WpfApplication3
{
    /// <summary>
    /// MainWindow.xaml 的交互邏輯
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            IniClass ini = new IniClass();
            string IniPath = System.Windows.Forms.Application.StartupPath + "\\temp.ini";//引用里添加form才可以
            string section = "BigBang";
            ini.SetPath(IniPath);
            ini.IniWriteValue(section, "1", "Amy");
            ini.IniWriteValue(section, "2", "Sheldon");
            string section1 = "Family";
            ini.SetPath(IniPath);
            ini.IniWriteValue(section1, "1", "Phil");
            ini.IniWriteValue(section1, "2", "Jay");
            string re = ini.IniReadValue(section, "1");
            System.Windows.MessageBox.Show(re);
        }
    }
    public class IniClass
    {
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key,
           string value, string filepath);
        [DllImport("kernel32")]
        private static extern long GetPrivateProfileString(string section, string key,
            string def, StringBuilder retVal, int size, string filePath);
        private string iniPath;
        public void SetPath(string iniPath)
        {
            this.iniPath = iniPath;
        }
        public void IniWriteValue(string section, string key, string value)
        {
            WritePrivateProfileString(section, key, value, this.iniPath);
        }
        public string IniReadValue(string section, string key)
        {
            StringBuilder temp = new StringBuilder(500);
            GetPrivateProfileString(section, key, "", temp, 500, iniPath);
            return temp.ToString();
        }
        public bool ExistFile()
        {
            return File.Exists(this.iniPath);
        }
    }
}

注意:

WPF中引入WindowsForms控件的方法為:引用添加System.Windows.Forms.Integration與System.Windows.Forms;

到此這篇關(guān)于C# 利用動(dòng)態(tài)庫(kù)DllImport("kernel32")讀寫ini文件的文章就介紹到這了,更多相關(guān)C# 讀寫ini文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#入門學(xué)習(xí)之集合、比較和轉(zhuǎn)換

    C#入門學(xué)習(xí)之集合、比較和轉(zhuǎn)換

    本文詳細(xì)講解了C#中的集合、比較和轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#中讀寫INI文件的方法例子

    C#中讀寫INI文件的方法例子

    C#中讀寫INI文件的方法例子,需要的朋友可以參考一下
    2013-05-05
  • 使用淘寶ip地址庫(kù)查ip的示例

    使用淘寶ip地址庫(kù)查ip的示例

    這篇文章主要介紹了使用淘寶ip地址庫(kù)查ip的示例,需要的朋友可以參考下
    2014-03-03
  • C#超實(shí)用代碼段合集

    C#超實(shí)用代碼段合集

    這篇文章主要介紹了C#超實(shí)用代碼段合集,涉及C#針對(duì)圖標(biāo)、數(shù)學(xué)運(yùn)算、拼音、日期、時(shí)間及文件夾等的相關(guān)操作技巧,需要的朋友可以參考下
    2015-11-11
  • 在 C# 中使用 插值字符串

    在 C# 中使用 插值字符串

    這篇文章主要介紹了在 C# 中使用 插值字符串,字符串插值是一種將 表達(dá)式 插入到字符串字面量中的一種技術(shù),又稱為變量替換,變量插值,變量展開 等等,它是一種用相應(yīng)值替換字符串中的一個(gè)或者更多個(gè)占位符的處理過程
    2022-01-01
  • c#中的正則表達(dá)式和日期的使用示例

    c#中的正則表達(dá)式和日期的使用示例

    在?C#?中,正則表達(dá)式(Regular?Expressions)是一種強(qiáng)大的文本處理工具,用于執(zhí)行各種字符串搜索、替換和驗(yàn)證任務(wù),這篇文章主要介紹了c#中的正則表達(dá)式和日期的使用示例,需要的朋友可以參考下
    2024-07-07
  • 詳解如何在C#中處理空值

    詳解如何在C#中處理空值

    在任何編程語言中開發(fā)應(yīng)用程序時(shí),經(jīng)常會(huì)遇到空異常或空引用異常,那么下面讓我們探討一下在C#中處理空值的各種方法吧,需要的可以收藏下
    2023-07-07
  • C#自動(dòng)判斷Excel版本使用不同的連接字符串

    C#自動(dòng)判斷Excel版本使用不同的連接字符串

    這篇文章主要介紹了C#自動(dòng)判斷Excel版本使用不同的連接字符串,本文重點(diǎn)在不同版本的連接字符串介紹,需要的朋友可以參考下
    2015-06-06
  • C# 開發(fā)圓角控件(窗體)的具體實(shí)現(xiàn)

    C# 開發(fā)圓角控件(窗體)的具體實(shí)現(xiàn)

    這篇文章主要介紹了C# 開發(fā)圓角控件的具體實(shí)現(xiàn),需要的朋友可以參考下
    2014-02-02
  • C#使用正則表達(dá)式過濾html標(biāo)簽

    C#使用正則表達(dá)式過濾html標(biāo)簽

    最近在開發(fā)一個(gè)項(xiàng)目,其中有需求要求我們把一段html轉(zhuǎn)換為一般文本返回,使用正則表達(dá)式是明智的選擇,下面小編給介紹下C#使用正則表達(dá)式過濾html標(biāo)簽,需要的朋友參考下
    2016-08-08

最新評(píng)論

珠海市| 镇远县| 棋牌| 贺州市| 桃园县| 银川市| 长治县| 韩城市| 安康市| 盐亭县| 仙桃市| 石柱| 临湘市| 清苑县| 长沙市| 虎林市| 简阳市| 安国市| 磐安县| 大方县| 天祝| 嘉兴市| 新津县| 游戏| 怀化市| 韶关市| 喜德县| 山阳县| 左贡县| 游戏| 柳江县| 巴东县| 壤塘县| 怀集县| 曲松县| 宣城市| 泰宁县| 琼结县| 民县| 土默特左旗| 澜沧|