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

2、到了ATL項目向?qū)?,不需要改動,完成向?qū)АO驅(qū)瓿珊?,vc將會自動生成一系列的程序。

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

4、來到ATL簡單對象向?qū)?,輸入你要新建的類?MyClass,完成向?qū)?。(注意了,還要填寫ProgID,有些vs會自動補全)

5、回到類視圖中,在IMyClass右鍵,添加方法,將會進入添加方法的向?qū)А?/DIV>


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

正常情況下,到這里就完成了。
extension=php_com_dotnet.dll
結(jié)束語
這個功能是PHP調(diào)用COM組件的功能,雖然很方便調(diào)用,開發(fā)也比較簡單,但也因為使用COM組件技術(shù),限定了只有Windows的機子才能使用。

7、在MyClass.cpp找到我們剛剛添加的方法,add(LONG a, LONG b, LONG* c),修改如下:
8、編譯后,在生成目錄找到ComTest.dll,注冊到系統(tǒng)
復(fù)制代碼 代碼如下:
STDMETHODIMP CMyClass::add(LONG a, LONG b, LONG* c)
{
*c = a + b;
return S_OK;
}
{
*c = a + b;
return S_OK;
}
8、編譯后,在生成目錄找到ComTest.dll,注冊到系統(tǒng)
復(fù)制代碼 代碼如下:
regsvr32 ComTest.dll
二、PHP調(diào)用COM組件
復(fù)制代碼 代碼如下:
<?php
$com = new COM("ComTest.MyClass") or die("無法調(diào)用ComTest");
echo $com->add(1, 2);
$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配置,如下:
復(fù)制代碼 代碼如下:
extension=php_com_dotnet.dll
結(jié)束語
這個功能是PHP調(diào)用COM組件的功能,雖然很方便調(diào)用,開發(fā)也比較簡單,但也因為使用COM組件技術(shù),限定了只有Windows的機子才能使用。
相關(guān)文章
修改destoon會員公司的偽靜態(tài)中的com目錄的方法
這篇文章主要介紹了修改destoon會員公司的偽靜態(tài)中的com目錄的方法,在偽靜態(tài)設(shè)置中很實用的技巧,需要的朋友可以參考下2014-08-08
codeigniter框架The URI you submitted has disallowed characters
這篇文章主要介紹了codeigniter框架The URI you submitted has disallowed characters錯誤解決方法,需要的朋友可以參考下2014-05-05
app判斷鏈接參數(shù)后綴跳轉(zhuǎn)不同地址的方法
下面小編就為大家?guī)硪黄猘pp判斷鏈接參數(shù)后綴跳轉(zhuǎn)不同地址的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
ThinkPHP實現(xiàn)微信支付(jsapi支付)流程教程詳解
這篇文章主要介紹了ThinkPHP實現(xiàn)微信支付(jsapi支付)流程教程詳解,需要的朋友可以參考下2018-03-03
基于PHP讀取TXT文件向數(shù)據(jù)庫導(dǎo)入海量數(shù)據(jù)的方法
本篇文章小編為大家介紹,基于PHP讀取TXT文件向數(shù)據(jù)庫導(dǎo)入海量數(shù)據(jù)的方法。需要的朋友參考下2013-04-04
有道搜索和IP138的IP的API接口(PHP應(yīng)用)
原理就是通過php模擬瀏覽器獲取ip地址歸屬地,需要的朋友可以參考下2012-11-11

