PHP如何调用COM组件

这是最近的一个项目遇见的一个问题,已解决,记录在这里备忘。

应用场景用一句话描述就是 :我不得不调用一个指定的dll 来解密服务器端软件发送过来的加密字符串。

//////这是加密字符串//////


$str = "899dffe40241776af15e9c8c4c10e1c17909aadcd95407150c82e201f238ae7548696496a0bcabfaddd03fb2b91164f78e026b2f20d2ee546414351535dcd6c0be2efa60b3f7702dae2820ce44e70c5981eca3b4705ac29393e1602892285856a9a350177e7febcc87d07afd3b5d014eec279664e22bb97d9ed8a753741faa4d4bc2e2418ca03fac14fe562bf6f75948c4be42f7af70f162b5d75b3a1a667d55e523a785a81d9cb1abaaed6b6af3de";



///////////////////////////////调用com组件///////////////////(php_dll.dll为公司内部开发的动态链接库)

$com = new COM("php_dll.Record") or die("##190##"); //建立COM组件
$de_str = $com->Decrypt_Data($str); //解密后的字符串
打印$de_str的结果,此时报错:Failed to create COM object `php_dll.Record'


原因在于这个组件没有注册。

注册com组件步骤:

开始>>程序>>管理工具>>组件服务,或者控制面板>>管理工具>>组件服务,左边的树中,组件服务>>计算机>>我的电脑>>COM+应用程序,右击>>新建应用程序,然后一直下一步,就创建了一个应用程序,然后在里面可以注册组件。如果你是服务器上注册的,可能需要在角色中添加administrator和guest两个用户,否则组件有可能不能正常运行。
此时程序正常运行,解密成功。
( [qq] => 13922123 [phone] => 1302132132 [contact] => weiwei [ver] => 2010.123.222 [city] => 12 [prov] => 3 [pwd] => 202cb962ac59075b964b07152d234b70 [diskid] => 123 [rgc] => 240 [bname] => 123 [account] => KYKN7550135 ) 



分享至
2014-06-23 发布 ┊ 3779 人浏览 ┊ 1 人评论 ┊ 来源:原创 ┊ 收藏
回复
  • # 1小风123 2015-01-14 11:01┆
    1111111111111
返回顶部