PHP如何用调用C#编写的DLL

求详细的C#端代码和PHP端代码... 求详细的C#端代码和PHP端代码 展开
 我来答
匿名用户
推荐于2016-11-20
展开全部

  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组件了.

  如果不进行强命名签名,这一步会提示加载失败:

syht2000
高粉答主

2013-09-29 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式