用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5708|回复: 4
收起左侧

PHP能调用c#编译的dll吗?

[复制链接]
发表于 2010-4-21 17:28:41 | 显示全部楼层 |阅读模式
如果能c#有什么写法要求吗? php怎么引入这个dll,然后使用里面的方法?
发表于 2010-4-21 17:50:21 | 显示全部楼层
我认为不能。
 楼主| 发表于 2010-4-21 17:56:58 | 显示全部楼层
php 里面的那个com类可以利用到不。
 楼主| 发表于 2010-4-22 18:14:34 | 显示全部楼层
PHP 调用 C# dll
一个简单的例子 http://www.ej38.com/showinfo/csharp-php-175516.html
 楼主| 发表于 2010-4-26 10:59:21 | 显示全部楼层
本帖最后由 kunwsk 于 2010-4-26 11:08 编辑

1. 创建一个 C# Class Library . (dll)
  创建完成后, 打开项目的属性,
  在点选左边的 "Application"(就是第一个tab) , 然后点击 Assembly Information 按钮 ,
  在弹出的Dialog中, 必须在底部勾上: Make assembly COM-visible !
     否则 , 这个dll将不能以COM方式访问 .
  ( 当然, 你也可以在代码中的类声明中写上[ComVisible(true)] , 效果一样)
2.创建类库并编译成dll
3.找到dll文件夹路径 ,然后使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示符
进入该dll文件夹下输入: regasm  名称.dll<回车>。
这时候,这个.dll的.net程序集就变成一个标准的Com组件了,但是还不能用,必须让它变成全局Com组件.
这个regasm 实用程序将创建一个类型库并在 Windows 注册表中对其进行注册,以使 PhysServer2.dll 中的类对 COM 客户端可用 .
需要做下面步骤
将程序集添加到全局程序集缓存中
进入提示符窗口,输入: gacutil /I 名称.dll<回车>  
这时,你的这个dll就被复制到全局程序集缓存中了.也就是说无论在这个电脑的哪个硬盘上都可以使用此dll组件了.

php [code]

$result = new com("dll文件名称.类名");
$show = $result->方法名();

本版积分规则