很多站长朋友们都不太清楚php开发dll,今天小编就来给大家整理php开发dll,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 pphp开发中Windows下配置GD库,我按你前面的回答做,发现php安装路径/ext文件夹下的php_gd2.dll打不开? 2、 php怎么调用 dll动态库 3、 如何在PHP中调用自己编写的DLL库中的函数接口 4、 PHP如何用调用C#编写的DLL 5、 PHP如何调用.dll文件呀 pphp开发中Windows下配置GD库,我按你前面的回答做,发现php安装路径/ext文件夹下的php_gd2.dll打不开?你可以创建一个php文件,内容为 <?php phpinfo();?>并运行它,然后你会看到一些php状态信息,其中开头部分有一行会写明当前正在使用的php.ini文件的位置。在这个文件中有你要找的东西。
同时,php.ini中应该还有类似extension_dir之类的一个设置,用于说明dll文件的存储路径,你要保证该路径和文件名(php_gd2.dll)的组合正确指向了该文件。
去掉前面的分号后,你需要重新启动apache,然后可以再次运行<?php phpinfo();?>这个文件,如果加载正确的话你就能在里面看到gd2这个扩展的相关资讯了。
php怎么调用 dll动态库做成 php 的扩展,就可以调用了。 把做好的dll文件放在php的扩展模块路径下面,然后在php.ini文件中追加 extension=extname.dll 如果dll文件没问题,接着就可以在php文件中直接调用其中的函数了。
如何在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 hModule = NULL;
typedef int (*Func)(int a, int b);
// 动态加载 DLL 文件
hModule = LoadLibrary(_TEXT("/Debug//FuncDll.dll" ));
// 获取 fun函数地址
Func fAdd = (Func)GetProcAddress(hModule, "fun" );
// 使用函数指针
printf("%d/n" , fAdd(3, 1));
// 释放指针
FreeLibrary(hModule);
return 0;
}
PHP如何用调用C#编写的DLL1.创建一个 C# Class Library ,命名为:HelloWorld
2.打开项目的属性,在点选左边的 "Application"(就是第一个tab) , 然后点击Assembly Information 按钮 ,在弹出的Dialog中, 必须在底部勾上: Make assembly COM-visible !否则 , 这个dll将不能以COM方式访问 .( 也可以在代码中的类声明中写上[ComVisible(true)] , 效果一样,需要增加using System.Runtime.InteropServices;引用)
PHP调用C#开发的dll类库方法
3.创建强命名签名文件并使用
使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示符,输入 sn -k d:HelloWorld.snk 回车即创建了强命名签名文件
打开项目的属性,点选左边Signing 勾上Sign the assembly 在 Choose a strong name key file:处选择 选择刚才创建的HelloWorld.snk文件
4.创建类库并编译成dll
复制代码 代码如下:
namespace HelloWorld
{
//[ComVisible(true)] //or check "Assembly COM-Visible" at Application-Assembly_Information dialog ;
public class Hello
{
public string Write()
{
return "Hello World";
}
}
}
5.找到dll文件夹路径 ,然后使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示符
进入该dll文件夹下输入:
复制代码 代码如下:
regasm HelloWorld.dll<回车>
这时候,这个.dll的.net程序集就变成一个标准的Com组件了,但是还不能用,必须让它变成全局Com组件.
将程序集添加到全局程序集缓存中
进入提示符窗口,输入:
复制代码 代码如下:
gacutil /I HelloWorld.dll<回车>
这时,你的这个dll就被复制到全局程序集缓存中了.也就是说无论在这个电脑的哪个硬盘上都可以使用此dll组件了.
如果不进行强命名签名,这一步会提示加载失败:
PHP如何调用.dll文件呀如果你确定你的扩展*.dll能在php
正确使用的话,首先需要把这个.dll文件复制到php的安装目录\ext文件夹下,然后修改php.ini文件,在
;;;;;;;;;;;;;;;;;;;;;;
;
Dynamic
Extensions
;
;;;;;;;;;;;;;;;;;;;;;;
配置节上,按照格式extension
=
a.dll添加该dll文件的引用,然后重新启动承载php的web服务器即可。
关于php开发dll的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php开发dll php开发桌面应用程序的详细内容...