PHP4调用自己编写的COM组件
<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>Private MyScriptingContext As ScriptingContext<BR><BR>Private MyApplication As Application<BR><BR>Private MyRequest As Request Private MyResponse As Response<BR><BR>Private MyServer As Server<BR><BR>Private 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>Public 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>Public Function Test_Number(num) As Variant<BR><BR>If num < 0 Then Get_Number_Attrib = -1<BR><BR>If num > 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><? <BR><BR>$b=new COM("p_test.c_test"); <BR><BR>$a=$b->Test_Number(-454); <BR><BR>echo $a; <BR><BR>?></TD></TR></TBODY></TABLE><BR><BR>运行php4文件将显示-1 <BR><BR>可能遇到的问题是,编译工程时通不过,要将 <BR><BR>Microsoft Active Server Pages Object Library<BR><BR>引用进来,具体实现“Project->References”找到改库,并勾上 <BR><BR>相比之下,PHP4调用com应该比PHP4调用javabean好哦,因为毕竟是Ms系统嘛。大家也可以去自己编写调用数据库的控件,用PHP4调用,从某种程度上,和PHP调用javabean一样,可以说,实现了“隐藏源代码”。 <br><br>
页:
[1]