[C#].NetFrameWork互通性-與 Unmanaged 程式碼互通

  • 1988
  • 0

摘要:[C#].NetFrameWork互通性-與 Unmanaged 程式碼互通

在 CLR 控制下所執行的程式,稱為 Managed 程式碼。

反之,

在執行階段以外執行的程式碼就稱為 Unmanaged 程式碼。COM 元件、ActiveX 介面及 Win32 API 函式都是 Unmanaged 程式碼的範例。

使用匯出的 DLL 函式

DLL 函式的識別是由下列項目構成:

  • 函式名稱或序數

  • 可在其中找到實作之 DLL 檔案的名稱

指定進入點

進入點可識別函式在 DLL 中的位置。在 Managed 專案中,目標函式的原始名稱或以序數編號的進入點可以在整個互通界限識別這個函式。
此外,您也可以將進入點對應到不同的名稱,實際地重新命名這個函式。

 

在 Managed 程式碼中建立原型

必須先知道函式名稱以及匯出該函式之 DLL 的名稱,然後才能從 Managed 程式碼存取 Unmanaged DLL 函式。有了這項資訊,您就可以開始對 DLL 中所實作之 Unmanaged 函式撰寫 Managed 定義。此外,您也可以調整平台叫用建立函式和在函式之間封送處理資料的方式。

 

平台叫用範例

 

使用平台叫用封送處理資料

 

平台叫用資料型別

 

封送處理字串

 

封送處理類別、結構和等位