设为首页收藏本站language 语言切换
查看: 1200|回复: 0
收起左侧

PHP4调用自己编写的COM组件

[复制链接]
发表于 2010-2-24 13:35:05 | 显示全部楼层 |阅读模式
<br>                   搞完了PHP4调用JavaBean,又想去试试调用COM,开始以为很难,自己用VB6写了一个Active Dll在PHP4中调用,马上成功,比调用javabean方便多了,下面讲一下我的步骤。 <BR><BR>下载的版本是从http://www.mm4.de/。 <BR><BR>一:用VB6写Activex Dll <BR><BR>代码如下: <BR><BR><TABLE cellSpacing=0 cellPadding=0 width="85%"><TBODY><TR><TD style="BORDER-RIGHT: rgb(0,0,0) 1px groove; BORDER-TOP: rgb(0,0,0) 1px groove; BORDER-LEFT: rgb(0,0,0) 1px groove; BORDER-BOTTOM: rgb(0,0,0) 1px groove" bgColor=#eeeeee>Option Explicit  <BR><BR>rivate MyScriptingContext As ScriptingContext  <BR><BR>rivate MyApplication As Application  <BR><BR>rivate MyRequest As Request Private MyResponse As Response  <BR><BR>rivate MyServer As Server  <BR><BR>rivate MySession As Session Public  <BR><BR>Sub OnStartPage(PassedScriptingContext As ScriptingContext)  <BR><BR>Set MyScriptingContext = PassedScriptingContext  <BR><BR>Set MyApplication = MyScriptingContext.Application  <BR><BR>Set MyRequest = MyScriptingContext.Request  <BR><BR>Set MyResponse = MyScriptingContext.Response  <BR><BR>Set MyServer = MyScriptingContext.Server  <BR><BR>Set MySession = MyScriptingContext.Session  <BR><BR>End Sub  <BR><BR>ublic Sub OnEndPage()  <BR><BR>Set MyScriptingContext = Nothing <BR><BR>Set MyApplication = Nothing  <BR><BR>Set MyRequest = Nothing  <BR><BR>Set MyResponse = Nothing  <BR><BR>Set MyServer = Nothing  <BR><BR>Set MySession = Nothing  <BR><BR>End Sub  <BR><BR>ublic Function Test_Number(num) As Variant  <BR><BR>If num &lt; 0 Then Get_Number_Attrib = -1  <BR><BR>If num &gt; 0 Then Get_Number_Attrib = 1  <BR><BR>If num = 0 Then Get_Number_Attrib = 0 <BR><BR>End Function </TD></TR></TBODY></TABLE><BR><BR>具体方法如下:新建一个VB6工程,ActiveX Dll将工程命名为P_test,类名为c_test <BR><BR>类的文件内容如上。 <BR><BR>编译生成p_test.dll文件 <BR><BR>二:注册 <BR><BR>提示符下运行: <BR><TABLE cellSpacing=0 cellPadding=0 width="85%"><TBODY><TR><TD style="BORDER-RIGHT: rgb(0,0,0) 1px groove; BORDER-TOP: rgb(0,0,0) 1px groove; BORDER-LEFT: rgb(0,0,0) 1px groove; BORDER-BOTTOM: rgb(0,0,0) 1px groove" bgColor=#eeeeee>regsvr32 p_test.dll</TD></TR></TBODY></TABLE><BR><BR>三:编写php文件,test.php4代码如下: <BR><BR><TABLE cellSpacing=0 cellPadding=0 width="85%"><TBODY><TR><TD style="BORDER-RIGHT: rgb(0,0,0) 1px groove; BORDER-TOP: rgb(0,0,0) 1px groove; BORDER-LEFT: rgb(0,0,0) 1px groove; BORDER-BOTTOM: rgb(0,0,0) 1px groove" bgColor=#eeeeee>&lt;? <BR><BR>$b=new COM("p_test.c_test"); <BR><BR>$a=$b-&gt;Test_Number(-454); <BR><BR>echo $a; <BR><BR>?&gt;</TD></TR></TBODY></TABLE><BR><BR>运行php4文件将显示-1 <BR><BR>可能遇到的问题是,编译工程时通不过,要将 <BR><BR>Microsoft Active Server Pages Object Library  <BR><BR>引用进来,具体实现“Project-&gt;References”找到改库,并勾上 <BR><BR>相比之下,PHP4调用com应该比PHP4调用javabean好哦,因为毕竟是Ms系统嘛。大家也可以去自己编写调用数据库的控件,用PHP4调用,从某种程度上,和PHP调用javabean一样,可以说,实现了“隐藏源代码”。                   <br><br>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-30 09:07 , Processed in 1.159082 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表