当前位置:  编程技术>php

php如何调用c#开发的dll类库?

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

    本文导语:  有时需要在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文件上传大小限制问题(nginx+php) iis7站长之家
  • php调用google接口生成二维码示例
  • php调用google接口生成二维码实例
  • php调用nginx的mod_zip模块打包ZIP文件
  • php通过字符串调用函数示例
  • PHP异步调用socket与php异步执行实例
  • php 异步调用方法实现示例
  • PHP异步调用实现方式详解
  • php根据ip调用新浪api获取城市名转拼音
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP的OAuth开发包 OAuth PHP
  • PHP的UTF8开发库 php-utf8
  • PHP的WebSockets开发包 PHP Ratchet
  • 超级负载PHP 开发框架 Xiuno PHP
  • PHP串口开发包 Php-serial
  • PHP应用开发框架 PHP Ding
  • PHP开发工具 PHPDesigner
  • PHP集成开发环境 PhpStorm
  • PHP开发框架 Yii
  • PHP开发框架 CakePHP
  • PHP开发框架 Radicore
  • PHP开发插件 PDT
  • PHP 集成开发工具 Codelobster
  • php扩展模块开发
  • PHP的Web服务开发包 InstantSVC
  • PHP的Web开发框架 epesi framework
  • PHP开发框架 PHPDevShell
  • PHP 开发扩展 C++ 库 PHP-CPP
  • PHP应用程序开发框架 CMSPAD
  • PHP开发工具 PHPEclipse
  • 修改配置真正解决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
  • php通过socket_bind()设置IP地址代码示例


  • 站内导航:


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

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

    浙ICP备11055608号-3