• 技术文章 >php教程 >php手册

    使用c#创建php可以调用的dll

    2016-06-06 19:56:17原创512

    1. 创建一个 C# Class Library ,命名为:HelloWorld 2. 打开项目的属性,在点选左边的 Application(就是第一个tab) , 然后点击 Assembly Information 按钮 ,在弹出的Dialog中, 必须在底部勾上: Make assembly COM-visible !否则 , 这个dll将不能以COM方式访问

    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)]
        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测试

    Write();
    echo $s;
    ?>

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:win7下IIS 用FastCGI模块 配置PHP 共有0条回复 下一篇:PHP实现静态发布的方法浅谈
    PHP编程就业班

    相关文章推荐

    • windows7下php开发环境搭建图文教程,• PHP SPL标准库中的常用函数介绍• SSI使用详解(二)• PHP应用程序架构浅谈• php 深入理解strtotime函数

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网