程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#基礎知識4:dll相關

c#基礎知識4:dll相關

編輯:C#入門知識

dll,動態鏈接庫。

這裡區分兩個概念,

一個是傳統的動態鏈接庫,也是我們所熟知的,如system32下的kerneral.dll,user32.dll,這種dll由c或者c++寫的dll編譯出來已經是機器碼的二進制文件,裡面提供一些封裝好的函數接口等。這種dll基本上各種語言都能調用。

而c#裡又引入了一種dll,這種dll就是一個類庫,可以在vs中創建

 

這種dll雖然編譯出來也是二進制的,不過是c#的中間碼格式,不同於傳統的dll。只能供c#使用,僅僅是一個類庫。


c#裡調用第二種dll不用說了,非常簡單,拷過來代碼裡就能引入。

這裡主要講c#如何調用第一種傳統的dll,譬如windows的api。


聲明一個extern函數來托管外部dll中的一個函數。如想要調用win32的msgbox

[csharp]
/*
 * Author: Shu
 * E_mail: [email protected]
 * Time: 10/24/2012 10:19:48 AM
 */ 
using System; 
using System.Runtime.InteropServices; 
 
/// <summary> 
/// win32的alert 
/// </summary> 
public class Alert 

    [DllImport("user32.dll", EntryPoint = "MessageBox", CharSet = CharSet.Unicode)] 
    private static extern int DllMsgBox(int hwnd, string content, string title, uint type); 
 
    /// <summary> 
    /// win32的消息框 
    /// </summary> 
    public static void MsgBox(string content, string title) 
    { 
        DllMsgBox(0, content, title, 64); 
    } 

  

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