使用c#创建php可以调用的dll
来源:互联网 发布:红色警戒mac版下载 编辑:程序博客网 时间:2024/05/01 10:21
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:处选择<Browse> 选择刚才创建的HelloWorld.snk文件
4. 创建类库并编译成dll
namespace HelloWorld{ [ComVisible(true)] 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组件.
这个regasm 实用程序将创建一个类型库并在 Windows 注册表中对其进行注册,以使 PhysServer2.dll 中的类对 COM 客户端可用 .
需要做下面步骤
将程序集添加到全局程序集缓存中
进入提示符窗口,输入: gacutil /I HelloWorld.dll<回车>
这时,你的这个dll就被复制到全局程序集缓存中了.也就是说无论在这个电脑的哪个硬盘上都可以使用此dll组件了.
如果不进行强命名签名,这一步会提示加载失败
PHP测试
<?php$r=new Com("HelloWorld.Hello");$s=$r->Write();echo $s;?>
- 使用c#创建php可以调用的dll
- PHP 调用 C# dll
- C#创建和调用托管的DLL
- C#调用c++创建的dll
- C#调用C++创建的DLL
- 创建Unity3D可以使用的dll类库
- 是不是所有的dll都可以被c#调用?
- C#创建和调用DLL
- C#创建和调用DLL
- C#创建和调用DLL
- C#创建和调用DLL
- C#创建和调用DLL
- C#创建和调用DLL
- CodeBlocks 创建dll C#调用
- 使用C++调用C#的DLL
- 使用C++调用C#的DLL
- 利用C#创建DLL和调用DLL
- 使用VS2013创建C#的dll文件
- Make Table read only
- android错误 Android NAND: nand_dev_load_disk_state,
- 实现RTP协议的H.264视频传输系统
- 2012七种最最为流行的婚纱摄影的风格
- 修改tomcat的conf/server.xml解决网页乱码
- 使用c#创建php可以调用的dll
- js replace方法
- as3笔记
- java利用多线程实现异步调用
- SNMP(MIB(OID)& SMI & SNMP)
- MartyrsCemetery菜鸟感想二之范导的新指示
- hdu2546-饭卡 --再见0-1背包
- 一条进程的栈区、堆区、数据区和代码区在内存中的映射
- PC/UVa 110103/10137 The Trip