CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

php调用dll接口的问题!!渴望大家帮助!

楼主bloveblue(蓝色的蓝色)2004-12-02 17:52:50 在 Web 开发 / PHP 提问

知道一个dll文件,怎么用php调用该dll文件的接口呢?  
  希望高手给出可用的代码段,最好有解释!!dll文件是系统内已经存在的!!  
   
  ps:求isapi相关教程、vc如何开发isapi的dll文件的教程  
   
   
  谢谢!!  
   
  再谢!! 问题点数:0、回复次数:15Top

1 楼uGain(uGain.org)回复于 2004-12-02 17:58:34 得分 0

转载一篇文章,启发一下:  
   
   
  搞完了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一样,可以说,实现了“隐藏源代码”。      
   
  欢迎有兴趣的朋友交流。Top

2 楼bloveblue(蓝色的蓝色)回复于 2004-12-02 18:27:01 得分 0

uGain(uGain.org)  
  我的服务器是apache,然后我直接用vc生成一个dll文件,放到php的根目录下  
  然后我通过http://localhost/myapi.dll   执行dll  
  但没有出现预料的执行页面,反而弹出一下载对话框询问我是否要下载该dll文件!!!!  
  我的其它php程序都很正常!!  
   
  请问这是怎么回事??跟php的服务器apache有关吗?或者跟php的运行模式(CGI、ISAPI)有关??  
   
  谢谢兄弟!!!Top

3 楼uuq(杜牧)回复于 2004-12-02 19:28:51 得分 0

楼主,你那不是叫php调用dll,而是执行dll,不过apache不知道怎么执行所以当作文件下载了  
  最好不能让这些执行。不然很危险的。服务器什么时候内容没有了也不知道  
  vc可以编译成cgi文件执行。具体你到cgi论坛去看下。不过也简单就是编译成控制台形式,  
  首先输出html文件头就可以了。Top

4 楼syre(神仙)回复于 2004-12-02 19:29:39 得分 0

dll只能在win32上运行啊  
   
  看手册  
  CXIV.   W32api   函数库Top

5 楼spacet(空格t)回复于 2004-12-02 20:07:09 得分 0

楼主的这种要求只能在win32上完成Top

6 楼twt326(天地小子)回复于 2004-12-03 00:18:50 得分 0

呵,收藏Top

7 楼xuzuning(唠叨)回复于 2004-12-03 08:01:44 得分 0

ActiveX   Dll   并不是真正意义上的dll。只能在系统注册后用com函数连接  
  Top

8 楼tpf9000(流光鸟)回复于 2004-12-03 08:58:16 得分 0

学习Top

9 楼comegree(失心狂乱)回复于 2004-12-03 09:52:33 得分 0

谢谢大家参与!!  
   
  那就是说php执行dll时不能够做到跨平台。pity!  
  :(  
   
  其实我想实现这种功能,就是在php和数据库之间做一个中间层,  
  由中间层执行数据库的相关操作!!这个中间层该如何实现呢???  
   
  希望高手指点迷津!!!   谢谢!!Top

10 楼bloveblue(蓝色的蓝色)回复于 2004-12-06 09:17:20 得分 0

up一下!!Top

11 楼syre(神仙)回复于 2004-12-06 15:03:49 得分 0

直接用php写啊  
  就像adodb那样Top

12 楼lawyu(雨淋漓)回复于 2004-12-06 17:55:02 得分 0

学习Top

13 楼syre(神仙)回复于 2004-12-07 12:48:49 得分 0

用java也可以  
  php也可以调用java的Top

14 楼jxflll(峰)回复于 2004-12-07 12:56:01 得分 0

学习。收藏!顶!Top

15 楼bloveblue(蓝色的蓝色)回复于 2004-12-07 22:47:49 得分 0

现在是晚上10:45,再顶一下  
   
  Top

相关问题

  • 请问如何调用COM DLL的标准接口函数“DllRegisterServer”?
  • 请教各位怎么调用该COM接口的DLL?急!
  • delphi中调用标准c接口(dll)的问题!
  • php怎么调用一个C++的DLL
  • 如何调用window系统中一些dll文件,知道它们的接口.
  • 是不是随便一个带API接口的DLL都能被RUNDLL32.EXE调用???
  • DLL的调用
  • dll的调用?
  • DLL调用
  • 调用DLL

关键词

  • vb6
  • 文件
  • php
  • 执行
  • 编译
  • dll
  • 代码
  • 数据库
  • 服务器
  • javabean

得分解答快速导航

  • 帖主:bloveblue

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo