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

C#使用技巧--調用DLL

編輯:關於C語言
技巧使用C#時不免用調用別的DLL,如WIN32的API和自己以前做的DLL,
C#調用DLL很像VB,下面討論的C#調用DLL的方式。
看看下面的例子,演示了怎麼定義DLL函數接口
public class Utility
{
   [DllImport("kernel32",
EntryPoint=”CreateDirectory”,
CallingConvention=CallingConvention.StdCall]
   public static extern bool Create (string name);
  
   [DllImport("User32"]
EntryPoint=”MessageBox”,
CallingConvention=CallingConvention.StdCall]
   public static extern int MsgBox (string msg);
}
  
class MyClass
{
   public static int Main()
   {
      string myString;
      Console.Write("Enter your message: ");
      myString = Console.ReadLine();
      return Utility.MsgBox(myString);
   }
}
  
值得注意的是,缺省的調用規則(CallingConvention)是Stdcall,同Winapi,在
C++裡是__stdcall的形式,函數入口(EntryPoint)缺省是同名,如CreateDirectory
的定義也可以為
   [DllImport("kernel32")]
   static extern bool CreateDirectory(string name, SecurityAttributes sa);
  
WIN32 API原型為
BOOL CreateDirectory(
  LPCTSTR lpPathName,                         // directory name
  LPSECURITY_ATTRIBUTES lpSecurityAttributes  // SD
);
  
在調用WIN32 API時注意那些類型的轉換,如結構(struct)、指針(pointer),

有關各種語言之間類型轉換和DllImport屬性的詳細信息可以參考SDK文檔 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved