当前位置:首页 » 编程语言 » php调用cdll

php调用cdll

发布时间: 2022-06-22 23:56:20

1. php如何调用.dll文件呀

如果你确定你的扩展*.dll能在php
正确使用的话,首先需要把这个.dll文件复制到php的安装目录\ext文件夹下,然后修改php.ini文件,在
;;;;;;;;;;;;;;;;;;;;;;
;
Dynamic
Extensions
;
;;;;;;;;;;;;;;;;;;;;;;
配置节上,按照格式extension
=
a.dll添加该dll文件的引用,然后重新启动承载php的web服务器即可。

2. PHP如何用调用C#编写的DLL

1.创建一个 C# Class Library ,命名为:HelloWorld

2.打开项目的属性,在点选左边的 "Application"(就是第一个tab) , 然后点击Assembly Information 按钮 ,在弹出的Dialog中, 必须在底部勾上: Make assembly COM-visible !否则 , 这个dll将不能以COM方式访问 .( 也可以在代码中的类声明中写上[ComVisible(true)] , 效果一样,需要增加using System.Runtime.InteropServices;引用)

3. 如何处理PHP调用外部DLL

就是修改服务端axis bug,首先想到的就是自定义一个servlet然后继承AxisServlet,改写getSoapAction 代码,但是会发现getSoapAction是private的,所以只能整个AxisServlet代码修改getSoapAction部分(只需把写AxisFault部分代码放在最后面,注意上面中的if语句中,soapAction.length()==0 要改一下,因为如果soapAction为空这样会抛出空指针异常的。),然后修改web.xml中配置的servlet为自定义的类路径。

4. 急!php中调用win32的DLL命令怎样写

1.需要加载php扩展 dl("php_w32api.dll"); 2.从你的dll里面导出函数,假定该函数在dll里面被声明为FuncDll,并且返回值是int类型 w32api_register_function("函数所在的dll", "FuncDll", "int"); 3.好了,现在你可以调用它了 $result = FuncDll();

5. PHP如何调用DLL - PHP进阶讨论

原帖由

2006-11-9
12:39
发表Linux服务器上的PHP能调用dll吗?(超级弱智问题)
不能

6. 如何在PHP中调用自己编写的DLL库中的函数接口

在 DLL工程中的 cpp中函数定义如下:

extern "C" _declspec (dllexport )
int fun(int a, char b)
{
return a + b;
}
第一种方法 隐式调用:

调用的 DLL的主工程的 文件中代码如下:

// 先把 lib 链接进来
#pragma comment (lib , "..//Debug//FuncDll.lib" )

// 外部声明的 add 函数
extern "C" _declspec (dllimport )
int fun(int a, char b);

int TestDll()
{
// 直接调用 fun函数
printf("%d/n" , fun(5, 2));

return 0;
}
第二种方法 显式调用:
调用的 DLL的主工程的 文件中代码如下:

int TestDLL()
{
HMODULE hMole = NULL;
typedef int (*Func)(int a, int b);

// 动态加载 DLL 文件
hMole = LoadLibrary(_TEXT("..//Debug//FuncDll.dll" ));

// 获取 fun函数地址
Func fAdd = (Func)GetProcAddress(hMole, "fun" );

// 使用函数指针
printf("%d/n" , fAdd(3, 1));

// 释放指针
FreeLibrary(hMole);

return 0;
}

7. 那位有PHP 调用外部DLL经验

做成 php 的扩展,就可以调用了。

把做好的dll文件放在php的扩展模块路径下面,然后在php.ini文件中追加

extension=extname.dll

如果dll文件没问题,接着就可以在php文件中直接调用其中的函数了。

以下这个地址的文章教你怎么做php的扩展:
http://www.devarticles.com/c/a/Cplusplus/Developing-Custom-PHP-Extensions-Part-1/

8. php调用dll文件里面的函数

1、首先从www.php.net网站上下载php源码,此处以php-5.2.17版本为例,下载后解压至E:盘根目录下(目录可以自己随意定)。
2、下载安装VC++ 6.0,因为PHP源码是利用6.0版本写的,所以使用这个版本编译不会出现意外,别的版本未测试。
3、把VC++ 6.0安装目录中的 Microsoft Visual Studio\Common\MSDev98\Bin 绝对路径添加到系统环境变量中。
4、进入E:\php-5.2.17\ext目录,复制skeleton文件夹,并重命名为要开发扩展的名字,本例为“myfun”。
5、重命名skeleton.c为myfun.c,skeleton.dsp为myfun.dsp
6、编辑myfun目录中的php_skeleton.h、myfun.c、myfun.dsp这三个文件,替换内容中所有extname为myfun,EXTNAME为MYFUN。(一定要严格区分大小写)
下面就进入到编码阶段:
7、打开php_skeleton.h文件(头文件),找到PHP_FUNCTION(confirm_myfun_compiled);,在 PHP_FUNCTION(confirm_myfun_compiled);,下面编写PHP_FUNCTION(mb_MessageBox);,声 明一个mb_MessageBox函数,此函数的作用仅是输出js弹出一个alert消息框,用于测试。
8、下面定义函数入口,打开myfun.c文件,找到PHP_FE(confirm_myfun_compiled,NULL) ;,在下面编写 PHP_FE(mb_MessageBox,NULL),此处注意一下,PHP_FE是定义的一个宏,所以后面不用加引号。
9、在myfun.c最后面编写函数的实体部分:

PHP_FUNCTION(mb_MessageBox)
{
char *arg = NULL;
int arg_len, len;
char *strg;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
return;
}

len = spprintf(&strg, 0, "<script>alert('%s')</script>",arg); //此处正是输入的js代码
RETURN_STRINGL(strg, len, 0);
}

到这代码书写就完成了,下面开始编译:
10、开始->运行,输入CMD,打开命令行窗口。
11、进入myfun的目录,输入 msdev myfun.dsp /MAKE "myfun - Win32 Release_TS",回车编译。
12、如果没有错误,在E:\php-5.2.17下会生成一个Release_TS文件夹,在里面就可以找到php_myfun.dll文件。
至此扩展dll开发完成,下面在php中进行测试:
13、把php_myfun.dll复制到原php目录中的ext文件夹内。
14、打开php.ini文件,添加当前dll的扩展 extension=php_myfun.dll
15、重启apache,在网站目录下新建一文件,输入以下内容:
<?php
echo mb_MessageBox("测试PHP扩展DLL by 马犇");
?>
浏览即可看到效果

热点内容
计算机代码经典编程 发布:2025-02-05 19:25:09 浏览:756
安卓抖音怎么换不了白色背景 发布:2025-02-05 19:11:16 浏览:810
安卓手机如何变成手写 发布:2025-02-05 19:11:14 浏览:979
esp32搭建自己的服务器 发布:2025-02-05 18:58:00 浏览:318
wampphp升级 发布:2025-02-05 18:50:53 浏览:920
源码地带 发布:2025-02-05 18:46:37 浏览:615
我的世界服务器怎么骑别人的头 发布:2025-02-05 18:46:32 浏览:90
怎么卸载ftp账号 发布:2025-02-05 18:41:52 浏览:63
SQL指定的服务并未以 发布:2025-02-05 18:40:09 浏览:974
电脑连接不了服务器什么意思 发布:2025-02-05 18:34:46 浏览:356