当前位置:  编程技术>php

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

    来源: 互联网  发布时间:2014-08-26

    本文导语:  有的时候,我们需要在php中利用到其他语言编写的dll类库,如C#编写的dll,方法就是利用PHP new COM方法来调用,在调用之前先要把dll库注册并把程序集放入到全局缓存中。 1. 创建一个 C# Class Library ,命名为:HelloWorld 2. 打开项目...

有的时候,我们需要在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;引用)

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测试:

代码如下:
 
命令符下:
代码如下:
CD [/D] [drive:][path]  #进入指定路径
CD [..] #返回父目录

    
 
 

您可能感兴趣的文章:

  • 操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP)
  • 在C#中生成与PHP一样的MD5 Hash Code的方法
  • php如何调用c#开发的dll类库?
  • C#使用PHP服务端的Web Service通信实例
  • 救命.PHP没有办法调用MYSQL!!!!
  • php 使用system() 调用c程序的问题
  • php调用c++的方法
  • PHP父类调用子类方法的例子
  • php中调用其他系统http接口的方法说明
  • PHP异步调用socket小例子
  • PHP父类调用子类方法的代码例子
  • PHP Thrift Rpc 远程调用框架 workerman-thrift
  • php调用kill命令平滑重启nginx
  • php调用存储过程返回结果集的例子
  • PHP调用VC编写的COM组件实例
  • php中创建和调用webservice接口示例
  • php调用google接口生成二维码示例
  • php调用google接口生成二维码实例
  • php调用nginx的mod_zip模块打包ZIP文件
  • php通过字符串调用函数示例
  • PHP异步调用socket与php异步执行实例
  • php 异步调用方法实现示例
  • PHP异步调用实现方式详解
  • php根据ip调用新浪api获取城市名转拼音
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php5中当浏览器禁用cookie时保持会话session的方法
  • 判断php数组维度(php数组长度)的方法
  • PHP编程语言介绍及安装测试方法
  • 图解找出PHP配置文件php.ini的路径的方法
  • php类声明和php类使用方法示例分享
  • windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
  • 查找php配置文件php.ini所在路径的二种方法
  • php定义数组和使用示例(php数组的定义方法)
  • PHP质数计算三种方法 php求100以内的质数
  • PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
  • php反射机制获取php类的所有方法
  • iis加载不到php.ini的解决方法
  • php跨域cookie共享使用方法
  • 两种设置php载入页面时编码的方法
  • PHP快速排序小例子 php快速排序实现方法
  • PHP exif扩展方法开启详解
  • php出现Class 'XsltProcessor' not found问题的解决方法
  • windows下开启PHP GD库的方法
  • php判断闰年的三种方法(闰年计算方法)
  • php向js函数传参的几种方法
  • php检测iis环境是否支持htaccess的方法
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3