PHP調用VC編寫的COM組件執行個體_PHP教程

來源:互聯網
上載者:User
一、用VC建立COM組件 1、vc建立項目 -> ATL項目,輸入名稱ComTest,ComTest將作為COM組件的名稱。


2、到了ATL項目嚮導,不需要改動,完成嚮導。嚮導完成後,vc將會自動產生一系列的程式。

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

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

5、回到類別檢視中,在IMyClass右鍵,添加方法,將會進入添加方法的嚮導。

6、來到添加方法嚮導,我們想實現計算2個數相加的功能,如下,參數a和b都是[in] Long,c為COM返回參數,為[out, retval] Long*,是一個指標。完成嚮導。
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,註冊到系統
複製代碼 代碼如下:regsvr32 ComTest.dll

二、PHP調用COM組件
複製代碼 代碼如下:
$com = new COM("ComTest.MyClass") or die("無法調用ComTest");
echo $com->add(1, 2);
正常情況下,到這裡就完成了。

但預設情況下,PHP調用COM組件的功能是沒有開啟的。PHP執行以上代碼就會報 Fatal error: Class 'COM' not found 錯誤。修改PHP配置,如下:
複製代碼 代碼如下:
extension=php_com_dotnet.dll
結束語
這個功能是PHP調用COM組件的功能,雖然很方便調用,開發也比較簡單,但也因為使用COM組件技術,限定了只有Windows的機子才能使用。



http://www.bkjia.com/PHPjc/746863.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/746863.htmlTechArticle一、用VC建立COM組件 1、vc建立項目 - ATL項目,輸入名稱ComTest,ComTest將作為COM組件的名稱。 2、到了ATL項目嚮導,不需要改動,完成嚮導。向...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.