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

PHP調(diào)用VC編寫(xiě)的COM組件實(shí)例

 一、用VC創(chuàng)建COM組件 1、vc新建項(xiàng)目 -> ATL項(xiàng)目,輸入名稱ComTest,ComTest將作為COM組件的名稱。


2、到了ATL項(xiàng)目向?qū)В恍枰膭?dòng),完成向?qū)АO驅(qū)瓿珊螅瑅c將會(huì)自動(dòng)生成一系列的程序。

3、切換到類視圖,在ComTest項(xiàng)右鍵,添加類,選擇ATL簡(jiǎn)單對(duì)象,

4、來(lái)到ATL簡(jiǎn)單對(duì)象向?qū)В斎肽阋陆ǖ念惷?MyClass,完成向?qū)А#ㄗ⒁饬耍€要填寫(xiě)ProgID,有些vs會(huì)自動(dòng)補(bǔ)全)

5、回到類視圖中,在IMyClass右鍵,添加方法,將會(huì)進(jìn)入添加方法的向?qū)А?IMG alt="" src="/d/file/itjie/phpjishu/2014-10-22/115a8b576fba44acb8114f9e12cad17b.png">

6、來(lái)到添加方法向?qū)В覀兿雽?shí)現(xiàn)計(jì)算2個(gè)數(shù)相加的功能,如下,參數(shù)a和b都是[in] Long,c為COM返回參數(shù),為[out, retval] Long*,是一個(gè)指針。完成向?qū)А?IMG alt="" src="/d/file/itjie/phpjishu/2014-10-22/c2a351208a2683afb2db70dc00ae736f.png">
7、在MyClass.cpp找到我們剛剛添加的方法,add(LONG a, LONG b, LONG* c),修改如下:
復(fù)制代碼 代碼如下:STDMETHODIMP CMyClass::add(LONG a, LONG b, LONG* c) 

    *c = a + b; 
    return S_OK; 
}
8、編譯后,在生成目錄找到ComTest.dll,注冊(cè)到系統(tǒng)
復(fù)制代碼 代碼如下:regsvr32 ComTest.dll

二、php調(diào)用COM組件
復(fù)制代碼 代碼如下:<?php 

$com = new COM("ComTest.MyClass") or die("無(wú)法調(diào)用ComTest"); 
echo $com->add(1, 2); 
正常情況下,到這里就完成了。

但默認(rèn)情況下,php調(diào)用COM組件的功能是沒(méi)有打開(kāi)的。php執(zhí)行以上代碼就會(huì)報(bào) Fatal error: Class 'COM' not found 錯(cuò)誤。修改php配置,如下:
復(fù)制代碼 代碼如下:
extension=php_com_dotNET.dll 
結(jié)束語(yǔ)
這個(gè)功能是php調(diào)用COM組件的功能,雖然很方便調(diào)用,開(kāi)發(fā)也比較簡(jiǎn)單,但也因?yàn)槭褂肅OM組件技術(shù),限定了只有Windows的機(jī)子才能使用。



php技術(shù)PHP調(diào)用VC編寫(xiě)的COM組件實(shí)例,轉(zhuǎn)載需保留來(lái)源!

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

主站蜘蛛池模板: 吉林省| 临清市| 大余县| 新安县| 大连市| 肃南| 大埔县| 原阳县| 萍乡市| 洱源县| 登封市| 阿城市| 加查县| 毕节市| 金平| 湘潭县| 贡觉县| 英超| 肥西县| 射阳县| 湖口县| 东兰县| 共和县| 纳雍县| 府谷县| 高尔夫| 子洲县| 尉氏县| 革吉县| 奎屯市| 鹤山市| 开阳县| 钟祥市| 博湖县| 石河子市| 登封市| 泰宁县| 岗巴县| 沅江市| 湘乡市| 佳木斯市|