首頁 >後端開發 >php教程 >PHP呼叫C#開發的dll類別函式庫方法

PHP呼叫C#開發的dll類別函式庫方法

WBOY
WBOY原創
2016-07-29 09:09:081230瀏覽

這篇文章主要介紹了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 .Netd:Hello .snk 回車即建立了強命名簽章檔案
  開啟專案的屬性,點選左邊Signing 勾上Sign the assembly 在Choose a strong name key file:處選擇 選擇剛才建立的HelloWorld.snk檔案

PHP呼叫C#開發的dll類別函式庫方法


4. 建立類別函式庫並編譯成dll

複製程式碼

程式碼如下:


namespace HelloWorld 

市dialog ; 
    public class Hello 
    { 
        public string Write() 
 "; 
        } 
    } 
}


 
5. 找到dll資料夾路徑,然後使用vs.net的「Vsitual Studio . Net工具」-->Vistual Studio .Net指令提示字元
進入該dll資料夾下輸入:

複製程式碼 程式碼如下:

regasm  HelloWorld.dll


regasm  HelloWorld.dll

regasm  HelloWorld.dll

regasm  HelloWorld.dll

.net組件就變成標準的Com組件了,但是還不能用,必須讓它變成全局Com組件.

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

進入提示符窗口,輸入:


複製程式碼PHP呼叫C#開發的dll類別函式庫方法 程式碼如下:

gacutil /I HelloWorld.dll

 

這時,你的這個dll就被複製到全局程序集緩存中了.也就是說無論在這個電腦的哪個硬碟上都可以使用此dll元件了.如果不進行強命名簽章,這一步驟會提示載入失敗


PHP測試:


複製程式碼
程式碼如下:

$r=new Com("Hello ); $s;  ?>

 

命令符號下:

複製程式碼

程式碼如下:

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

CD [..] #返回父目錄 [drive:][path]  #進入指定路徑

CD [..] #返回父目錄。

原文轉自:http://www.jb51.net/article/52846.htm🎜🎜 🎜 以上就介紹了PHP呼叫C#開發的dll類別函式庫方法,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。 🎜 🎜 🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn