2. " /> 中文视频一区视频二区视频三区,亚洲欧美在线磁力,伊人色综合久久天天

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP調(diào)用C#開發(fā)的dll類庫方法

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

1. 創(chuàng)建一個(gè) C# Class Library ,命名為:HelloWorld
2. 打開項(xiàng)目的屬性,在點(diǎn)選左邊的 "Application"(就是第一個(gè)tab) , 然后點(diǎn)擊Assembly Information 按鈕 ,在彈出的Dialog中, 必須在底部勾上: Make assembly COM-visible !否則 , 這個(gè)dll將不能以COM方式訪問 .(  也可以在代碼中的類聲明中寫上[ComVisible(true)] , 效果一樣,需要增加using System.Runtime.InteropServices;引用)

3. 創(chuàng)建強(qiáng)命名簽名文件并使用
  使用vs.NET的“Vsitual Studio .NET工具”-->Vistual Studio .NET命令提示符,輸入 sn -k d:/HelloWorld.snk 回車即創(chuàng)建了強(qiáng)命名簽名文件
  打開項(xiàng)目的屬性,點(diǎn)選左邊Signing 勾上Sign the assembly 在 Choose a strong name key file:處選擇<Browse> 選擇剛才創(chuàng)建的HelloWorld.snk文件

4. 創(chuàng)建類庫并編譯成dll
復(fù)制代碼 代碼如下: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命令提示符
進(jìn)入該dll文件夾下輸入:
復(fù)制代碼 代碼如下:regasm  HelloWorld.dll<回車>

這時(shí)候,這個(gè).dll的.NET程序集就變成一個(gè)標(biāo)準(zhǔn)的Com組件了,但是還不能用,必須讓它變成全局Com組件.
將程序集添加到全局程序集緩存中
進(jìn)入提示符窗口,輸入:
復(fù)制代碼 代碼如下:gacutil /I HelloWorld.dll<回車>
 
這時(shí),你的這個(gè)dll就被復(fù)制到全局程序集緩存中了.也就是說無論在這個(gè)電腦的哪個(gè)硬盤上都可以使用此dll組件了.
如果不進(jìn)行強(qiáng)命名簽名,這一步會(huì)提示加載失敗

php測試:
復(fù)制代碼 代碼如下:<?php 
$r=new Com("HelloWorld.Hello"); 
$s=$r->Write(); 
echo $s; 
?> 
命令符下:
復(fù)制代碼 代碼如下:CD [/D] [drive:][path]  #進(jìn)入指定路徑
CD [..] #返回父目錄

php技術(shù)PHP調(diào)用C#開發(fā)的dll類庫方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 桐城市| 中超| 三原县| 南漳县| 柞水县| 土默特右旗| 平乐县| 海宁市| 乌审旗| 柘城县| 襄樊市| 喀什市| 抚州市| 晋宁县| 锡林浩特市| 白城市| 文成县| 武安市| 晋州市| 西藏| 康定县| 周至县| 海淀区| 红原县| 醴陵市| 林西县| 南华县| 台安县| 玉林市| 铁岭县| 赣州市| 株洲市| 博客| 长春市| 开封县| 建始县| 江门市| 开远市| 临湘市| 临潭县| 临汾市|