|

2、到了ATL項目向?qū)В恍枰膭樱瓿上驅(qū)АO驅(qū)瓿珊螅瑅c將會自動生成一系列的程序。

3、切換到類視圖,在ComTest項右鍵,添加類,選擇ATL簡單對象,

4、來到ATL簡單對象向?qū)В斎肽阋陆ǖ念惷?MyClass,完成向?qū)А#ㄗ⒁饬耍€要填寫ProgID,有些vs會自動補全)

5、回到類視圖中,在IMyClass右鍵,添加方法,將會進入添加方法的向?qū)А?IMG alt="" src="/d/file/itjie/phpjishu/2014-10-22/115a8b576fba44acb8114f9e12cad17b.png">
6、來到添加方法向?qū)В覀兿雽崿F(xiàn)計算2個數(shù)相加的功能,如下,參數(shù)a和b都是[in] Long,c為COM返回參數(shù),為[out, retval] Long*,是一個指針。完成向?qū)А?IMG alt="" src="/d/file/itjie/phpjishu/2014-10-22/c2a351208a2683afb2db70dc00ae736f.png">
7、在MyClass.cpp找到我們剛剛添加的方法,add(LONG a, LONG b, LONG* c),修改如下:
復制代碼 代碼如下:STDMETHODIMP CMyClass::add(LONG a, LONG b, LONG* c)
{
*c = a + b;
return S_OK;
}
8、編譯后,在生成目錄找到ComTest.dll,注冊到系統(tǒng)
復制代碼 代碼如下:regsvr32 ComTest.dll
二、php調(diào)用COM組件
復制代碼 代碼如下:<?php
$com = new COM("ComTest.MyClass") or die("無法調(diào)用ComTest");
echo $com->add(1, 2);
正常情況下,到這里就完成了。
但默認情況下,php調(diào)用COM組件的功能是沒有打開的。php執(zhí)行以上代碼就會報 Fatal error: Class 'COM' not found 錯誤。修改php配置,如下:
復制代碼 代碼如下:
extension=php_com_dotNET.dll
結(jié)束語
這個功能是php調(diào)用COM組件的功能,雖然很方便調(diào)用,開發(fā)也比較簡單,但也因為使用COM組件技術(shù),限定了只有Windows的機子才能使用。
php技術(shù):PHP調(diào)用VC編寫的COM組件實例,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。