程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c#調用Win32 Api函數

c#調用Win32 Api函數

編輯:關於C語言

在c#中可以通過互操作性服務using System.Runtime.InteropServices來調用window api函數.並且通過屬性來指定api函數的位置,以及調用方式,比如,我們要調用User32.dll裡的函數MessageBox(HWnd hwnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT type)

首先引入名字空間

using System.Runtime.InteropServices;

其次定義一個靜態方法,並且指定調用的方式.其中用關鍵子[DllImport()]指定調用方式.

如:

[DllImport("user32.dll", EntryPoint = "MessageBox", ExactSpelling = false)]

public static extern int MessageBox(int hWnd, string text, string caption, uint type);

然後,該函數就可以象正常函數一樣的調用了.

完整代碼如下:

/*
* write by zhanghua
* date:2008/5/28
*
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace NetMeeting.API
{
  public class Win32
  {
    [DllImport("user32.dll", EntryPoint = "MessageBox", ExactSpelling = false)]
    public static extern int MessageBox(int hWnd, string text, string caption, uint type);
  }
}

客戶調用幾乎和c#函數沒有什麼區別,如下:

using System;
using NetMeeting.API;
class test
{
  public static void Main(string[] agrs)
  {
      Win32.MessageBox(0,"hello ,this is a c# invoke win32 api","test",2);
  }
}

有復雜參數和回調函數的調用方式下次再談.

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