欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年03月29日 16:21:18   作者:  
最近項(xiàng)目需要PHP來(lái)解析二進(jìn)制數(shù)據(jù),如果直接PHP做比較麻煩,就想到VC編寫(xiě)COM組件來(lái)做,提供PHP調(diào)用。文章將介紹VC編寫(xiě)COM組件提供PHP調(diào)用,實(shí)現(xiàn)一個(gè)計(jì)算兩個(gè)數(shù)字相加的功能
 
一、用VC創(chuàng)建COM組件
1、vc新建項(xiàng)目 -> ATL項(xiàng)目,輸入名稱(chēng)ComTest,ComTest將作為COM組件的名稱(chēng)。


2、到了ATL項(xiàng)目向?qū)?,不需要改?dòng),完成向?qū)?。向?qū)瓿珊?,vc將會(huì)自動(dòng)生成一系列的程序。


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


4、來(lái)到ATL簡(jiǎn)單對(duì)象向?qū)В斎肽阋陆ǖ念?lèi)名 MyClass,完成向?qū)?。(注意了,還要填寫(xiě)ProgID,有些vs會(huì)自動(dòng)補(bǔ)全)


5、回到類(lèi)視圖中,在IMyClass右鍵,添加方法,將會(huì)進(jìn)入添加方法的向?qū)А?/DIV>


6、來(lái)到添加方法向?qū)?,我們想?shí)現(xiàn)計(jì)算2個(gè)數(shù)相加的功能,如下,參數(shù)a和b都是[in] Long,c為COM返回參數(shù),為[out, retval] Long*,是一個(gè)指針。完成向?qū)А?/DIV>

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ī)子才能使用。



相關(guān)文章

最新評(píng)論