使用VB编写的一个简单的ActiveX DLL,在Windows环境下用IIS+ASP引用可以正常,但是用IIS+PHP引用的话就产生没有办法初始化,也就是说OnStartPage没有执行.不知道是什么原因?
==========================================================================================
=========================================================================================
以下网上广泛传播的一个例子
新建一个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 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
编译生成p_test.dll文件 注册 提示符下运行:regsvr32 p_test.dll 编写php文件,test.php4代码如下: <?
$b=new COM("p_test.c_test");
$a=$b->Test_Number(-454);
echo $a;
?> 可能遇到的问题是,编译工程时通不过,要将 Microsoft Active Server Pages Object Library 引用进来,具体实现"Project->References"找到改库,并勾上 。
==========================================================================================
=========================================================================================
以下网上广泛传播的一个例子
新建一个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 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
编译生成p_test.dll文件 注册 提示符下运行:regsvr32 p_test.dll 编写php文件,test.php4代码如下: <?
$b=new COM("p_test.c_test");
$a=$b->Test_Number(-454);
echo $a;
?> 可能遇到的问题是,编译工程时通不过,要将 Microsoft Active Server Pages Object Library 引用进来,具体实现"Project->References"找到改库,并勾上 。
解决方案 »
- 来,帮忙跑跑小程序,看看会不会报错
- $product=$_POST["p1"];$arr=array("shangpin1"=>20,"shangpin2"=>30);
- httpd.ini的重定义问题
- MagicWand 如何在图片上打印竖向文字
- 大家来说什么样的水平叫PHP高级工程师
- 谁有世界国家以及每个国家的省(洲)的列表?(最好是英文版)
- PHP升级 BMForum论坛出错,请问该如何解决
- php的socket如何传递对象呢?
- 高分求得PHP加密方法或程序
- 代码如图所示,请问用数组还是switch?
- 有没有好的php视频介绍呢?
- 救命啊~PHP程序以后台方式运行连接远程数据库老是会死机的问题。
由于是整合2个系统才要用COM的.