PHP4 调用自己编写的 COM 组件

作者:东方一蛇   
搞完了PHP4调用JavaBean,又想去试试调用COM,开始以为很难,自己用VB6写了一个Active Dll在PHP4中调用,马上成功,比调用javabean方便多了,下面讲一下我的步骤。
下载的版本是从http://www.mm4.de/。
一:用VB6写Activex Dll
代码如下:
Option Explicit
Private MyScriptingContext As ScriptingContext
Private MyApplication As Application
Private MyRequest As Request Private MyResponse As Response
Private MyServer As Server
Private MySession As Session Public
Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Set MyScriptingContext = PassedScriptingContext
Set MyApplication = MyScriptingContext.Application
Set MyRequest = MyScriptingContext.Request
Set MyResponse = MyScriptingContext.Response
Set MyServer = MyScriptingContext.Server
Set MySession = MyScriptingContext.Session
End Sub
Public Sub OnEndPage()
Set MyScriptingContext = Nothing
Set MyApplication = Nothing
Set MyRequest = Nothing
Set MyResponse = Nothing
Set MyServer = Nothing
Set MySession = Nothing
End Sub
Public Function Test_Number(num) As Variant
If num < 0 Then Get_Number_Attrib = -1
If num > 0 Then Get_Number_Attrib = 1
If num = 0 Then Get_Number_Attrib = 0
End Function
具体方法如下:新建一个VB6工程,ActiveX Dll将工程命名为P_test,类名为c_test
类的文件内容如上。
编译生成p_test.dll文件
二:注册
提示符下运行:regsvr32 p_test.dll
三:编写php文件,test.php4代码如下:

$b=new COM("p_test.c_test");
$a=$b->Test_Number(-454);
echo $a;
?>
运行php4文件将显示-1
可能遇到的问题是,编译工程时通不过,要将
Microsoft Active Server Pages Object Library
引用进来,具体实现“Project->References”找到改库,并勾上
相比之下,PHP4调用com应该比PHP4调用javabean好哦,因为毕竟是Ms系统嘛。大家也可以去自己编写调用数据库的控件,用PHP4调用,从某种程度上,和PHP调用javabean一样,可以说,实现了“隐藏源代码”。
本文出自:

时间: 2024-10-27 21:50:44

PHP4 调用自己编写的 COM 组件的相关文章

PHP4调用自己编写的COM组件

搞完了PHP4调用JavaBean,又想去试试调用COM,开始以为很难,自己用VB6写了一个Active Dll在PHP4中调用,马上成功,比调用javabean方便多了,下面讲一下我的步骤. 一:用VB6写Activex Dll 代码如下: Option Explicit Private MyScriptingContext As ScriptingContext Private MyApplication As Application Private MyRequest As Request

vc++-新人求帮助:VC6 调用delphi编写的com组件函数 报错

问题描述 新人求帮助:VC6 调用delphi编写的com组件函数 报错 代码: IElectric *ptr = NULL; CLSID clsid; HRESULT hr = CLSIDFromString((LPOLESTR)L"{18F86FFB-158B-42D6-9203-C4197A4E76FE}",&clsid); hr = CoInitialize(0); if(!SUCCEEDED(hr)) { int nCode = GetLastError(); } h

如何用PHP调用自己编写的COM组件?

首先写ActiveX Dll: 新建一个VB6工程,ActiveX Dll将工程命名为P_test,类名为c_test ,类的文件内容如下: Option Explicit Private MyScriptingContext As ScriptingContext Private MyApplication As Application Private MyRequest As Request Private MyResponse As Response Private MyServer As

PHP调用VC编写的COM组件实例_php实例

  一.用VC创建COM组件 1.vc新建项目 -> ATL项目,输入名称ComTest,ComTest将作为COM组件的名称. 2.到了ATL项目向导,不需要改动,完成向导.向导完成后,vc将会自动生成一系列的程序. 3.切换到类视图,在ComTest项右键,添加类,选择ATL简单对象, 4.来到ATL简单对象向导,输入你要新建的类名 MyClass,完成向导.(注意了,还要填写ProgID,有些vs会自动补全) 5.回到类视图中,在IMyClass右键,添加方法,将会进入添加方法的向导. 6

在.NET里使用Visual FoxPro资源-vfp编写的COM组件

第二部分:在.NET里使用vfp编写的COM组件 Fox能够灵活.直观.快速处理数据,使得它非常适合应用在业务逻辑层次.从Visual FoxPro 5开始,微软不断加强Visual FoxPro 的COM组件开发上能力.简单归纳一下Visual FoxPro 在COM组件编写的特点: 全新的运行时刻库:VFPnT.DLL(n代表版本号).在这个运行库中,删除了大量老式的和界面控制元素,更小巧.更稳定.更快速. 全新的SESSION对象.在多线程状态下提供很好的隔离性. 内置对XML的支持,方便

VC调用有关PID仿真COM组件的问题

问题描述 VC调用有关PID仿真COM组件的问题 求大神只招!!!!我就是在MATLAB上编写了一个自适应模糊PID控制的仿真,现在把它COM化,然后在VC上设计一个界面,需要有关Kp0,Ki0,Kd0,以及传递函数的输入,得到不同的仿真图, 解决方案 vc调用 com+组件 求助VC调用COM组件VC调用COM组件 解决方案二: 你定义com接口.然后把需要的数据作为接口参数传递进去调用

c#调用c++编写的dll总是出现问题,哪位高手帮帮忙

问题描述 我的这个程序,使用c#调用c++编写的dll,总是出现以下这个问题,那位高手能够帮帮忙,小女子在此先感谢了.大家就救我吧.c++编写的dll中的函数voidEFSgetUsrThesaurus(pUsrDicFileNameTableDicFlNmTbl,pUsrKeyWordTableKeyWdTbl,pUsrThesaurusTableThTbl,EFSDICSTATUS*EFS_dicstatus);c++中的结构体typedefstruct{intCnt;struct{char

调用IE内置打印组件完成web打印方案及例程

web|web打印 调用IE内置打印组件完成web打印方案及例程(10.28) 重点:<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT> </OBJECT><input type=button value=打印 onclick="document.all.WebBrowser.ExecWB(6,1)" cl

com组件pb-PB 8.0调用C#写的com组件出现对象创建失败

问题描述 PB 8.0调用C#写的com组件出现对象创建失败 PB 8.0调用C#写的com组件出现对象创建失败,请问是不是com组件有什么问题?PB的调用代码绝对没错,组件注册能够成功. 解决方案 你的C#代码设置ComVisible(COM可见)为true了么?用regasm注册了么? 解决方案二: VC调用C#写的COM+组件C#创建COM供PB调用C#创建COM供PB调用