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

PHP調用C#開發的dll類庫方法

編輯:關於PHP編程

       這篇文章主要介紹了PHP調用C#開發的dll類庫方法,包含一個完整的詳細的DLL制作步驟和PHP調用方法,需要的朋友可以參考下

      有的時候,我們需要在php中利用到其他語言編寫的dll類庫,如C#編寫的dll,方法就是利用PHP new COM方法來調用,在調用之前先要把dll庫注冊並把程序集放入到全局緩存中。

      1. 創建一個 C# Class Library ,命名為:HelloWorld

      2. 打開項目的屬性,在點選左邊的 "Application"(就是第一個tab) , 然後點擊Assembly Information 按鈕 ,在彈出的Dialog中, 必須在底部勾上: Make assembly COM-visible !否則 , 這個dll將不能以COM方式訪問 .( 也可以在代碼中的類聲明中寫上[ComVisible(true)] , 效果一樣,需要增加using System.Runtime.InteropServices;引用)

    PHP調用C#開發的dll類庫方法  三聯

      3. 創建強命名簽名文件並使用

      使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示符,輸入 sn -k d:HelloWorld.snk 回車即創建了強命名簽名文件

      打開項目的屬性,點選左邊Signing 勾上Sign the assembly 在 Choose a strong name key file:處選擇 選擇剛才創建的HelloWorld.snk文件

      4. 創建類庫並編譯成dll

      復制代碼 代碼如下:

      namespace HelloWorld

      {

      //[ComVisible(true)] //or check "Assembly COM-Visible" at Application-Assembly_Information dialog ;

      public class Hello

      {

      public string Write()

      {

      return "Hello World";

      }

      }

      }

      5. 找到dll文件夾路徑 ,然後使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示符

      進入該dll文件夾下輸入:

      復制代碼 代碼如下:

      regasm HelloWorld.dll<回車>

      這時候,這個.dll的.net程序集就變成一個標准的Com組件了,但是還不能用,必須讓它變成全局Com組件.

      將程序集添加到全局程序集緩存中

      進入提示符窗口,輸入:

      復制代碼 代碼如下:

      gacutil /I HelloWorld.dll<回車>

      這時,你的這個dll就被復制到全局程序集緩存中了.也就是說無論在這個電腦的哪個硬盤上都可以使用此dll組件了.

      如果不進行強命名簽名,這一步會提示加載失敗

      PHP測試:

      復制代碼 代碼如下:

      

      $r=new Com("HelloWorld.Hello");

      $s=$r->Write();

      echo $s;

      ?>

      命令符下:

      復制代碼 代碼如下:

      CD [/D] [drive:][path] #進入指定路徑

      CD [..] #返回父目錄

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