Heim >Backend-Entwicklung >PHP-Tutorial >PHP调用C#开发的dll类库方法_PHP教程

PHP调用C#开发的dll类库方法_PHP教程

WBOY
WBOYOriginal
2016-07-13 10:21:44756Durchsuche

PHP调用C#开发的dll类库方法

   这篇文章主要介绍了PHP调用C#开发的dll类库方法,包含一个完整的详细的DLL制作步骤和PHP调用方法,需要的朋友可以参考下

  有的时候,我们需要在php中利用到其他语言编写的dll类库,如C#编写的dll,方法就是利用PHP new COM方法来调用,在调用之前先要把dll库注册并把程序集放入到全局缓存中。

  1. 创建一个 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测试:

  复制代码 代码如下:

  

  $r=new Com("HelloWorld.Hello");

  $s=$r->Write();

  echo $s;

  ?>

  命令符下:

  复制代码 代码如下:

  CD [/D] [drive:][path] #进入指定路径

  CD [..] #返回父目录

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/852822.htmlTechArticlePHP调用C#开发的dll类库方法 这篇文章主要介绍了PHP调用C#开发的dll类库方法,包含一个完整的详细的DLL制作步骤和PHP调用方法,需要的朋友可以...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn