程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#遷移之callXBFLibrary - 2(調用非托管DLL)

C#遷移之callXBFLibrary - 2(調用非托管DLL)

編輯:C#入門知識

我們需要使用API函數來讀取INI文件。

1. 建立P/Invoke應用類

\


\


在pinvoke.net中查找Win32 API在C#定義。

\

讀取Ini文件的API:GetPrivateProfileString<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHByZSBjbGFzcz0="brush:java;">[DllImport("kernel32.dll", CharSet=CharSet.Unicode)] static extern uint GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, uint nSize, string lpFileName); 注意:DllImport屬性來自using System.Runtime.InteropServices;


(1)lpAppName

小節名

(2)lpKeyName

鍵名

(3)lpDefault

缺省值

(4)lpReturnedString

返回值

(5)nSize

返回值長度

(6)lpFileName

讀取文件的名稱


建立一個公共方法,以供程序使用。

        public string readIniFileVal(string iniFileName, string section, string key)
        {
            StringBuilder retStrBuilder = new StringBuilder(256);
            GetPrivateProfileString(
                section, 
                key, 
                "", 
                retStrBuilder, 
                256, 
                iniFileName);
            return retStrBuilder.ToString();
        }

Cwin32API.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace callXBFLibrary
{
    class Cwin32API
    {
        [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
        private static extern uint GetPrivateProfileString(
           string lpAppName,
           string lpKeyName,
           string lpDefault,
           StringBuilder lpReturnedString,
           uint nSize,
           string lpFileName);

        public string readIniFileVal(string iniFileName, string section, string key)
        {
            StringBuilder retStrBuilder = new StringBuilder(256);
            GetPrivateProfileString(
                section, 
                key, 
                "", 
                retStrBuilder, 
                256, 
                iniFileName);
            return retStrBuilder.ToString();
        }
    }

    
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved