PHP调用C#开发的dll类库方法,

有的时候,我们需要在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测试: 代码如下:

$r=new Com("HelloWorld.Hello");

$s=$r->Write();

echo $s;

?>

命令符下:

代码如下:CD [/D] [drive:][path] #进入指定路径

CD [..] #返回父目录

php调用c程序

我这里给你一个PHP如何执行系统命令的几个函数,希望能给你带来帮助,我是以Linux举例的,和DOS 的是一样的函数,不过,一定要有执行的权限才可以。 php

php怎调用C语言程序?

php到是可以两、三句代码搞定,你确定你c语言会发布webservices,并且生成标准的soap文件,如果你认为php是c语言写的就可以相互简单调用的话,那你就错了,想法是好的,想结合各自的优点,另外你那点计算,php不能满足,你确定?

http://www.bkjia.com/PHPjc/851338.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/851338.htmlTechArticlePHP调用C#开发的dll类库方法, 有的时候,我们需要在php中利用到其他语言编写的dll类库,如C#编写的dll,方法就是利用PHP new COM方法来调用,...

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

c 的dll php调用方法,PHP调用C#开发的dll类库方法,_PHP教程相关推荐

  1. C语言 编写的DLL注入工具,新人开源一个自己开发的DLL注入和汇编注入器(简单的讲解)...

    本帖最后由 zhaobisheng 于 2020-11-13 15:18 编辑 新人双11刚注册了帐号,来个新人贴冒一下泡 ,因为我写文章比较少,如果表达的不够清晰的话,大家可以留言哈,多多谅解,源码 ...

  2. dart参数传方法_为 JavaScript 开发人员准备的 Dart 参考教程

    Dart 是 Flutter 主要的开发语言,这一篇文章主要为 JavaScript 开发人员准备的 Dart 教程,我会用很详细的对比来参考,力争 JavaScript 开发人员可以快速的熟练使用 ...

  3. java jni调用dll文件_Java通过jni调用动态链接库

    (1)JNI简介 JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++).从Java1.1开始,JNI标准成为java ...

  4. [转]使用C#调用金诚信71x系列读卡器的DLL

    本文转自:http://blog.csdn.net/cnhyong/archive/2008/01/24/2064167.aspx 原文如下:   由于项目需要,我必须使用C#来操作读卡器,读卡器只提 ...

  5. 使用Win32汇编开发一个dll并在C#中调用

    使用RadASM,新建一个Dll Project: 下一步,默认: dll包含Def文件: 完成工程构建:都默认: 完成以后项目结构如下: asm代码: .386 .model flat, stdca ...

  6. Java相对路径调用dll文件,VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)...

     开发平台:vs2013 他人提供的动态库文件,包含 .lib 文件和 .dll 文件 在VS的工程中常常要设置头文件的包含路径和库文件的包含路径,当然你可以使用绝对路径,但是如果你这样设置了你只 ...

  7. c 调用java post方法_C#调用Java方法(详细实例)

    C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ...

  8. C# 中静态调用C++dll 和C# 中动态调用C++dll

    在最近的项目中,牵涉到项目源代码保密问题,由于代码是C#写的,容易被反编译,因此决定抽取核心算法部分使用C++编写,C++到目前为止好像还不能被很好的反编译,当然如果你是反汇编高手的话,也许还是有可能 ...

  9. matlab dll没有头文件,matlab调用dll没有头文件怎么办

    2018-12-08 回答 基于dll形式vc调用matlab函数方法 如果在一matlab中或vc中写好了函数的话,想在对方的环境中使用,直接将对方语言的函数编译成dll是一个很方便的方法,不需要重 ...

最新文章

  1. 160630、五句话搞定JavaScript作用域
  2. delphi webbrowser 对象不支持_【Python 秘籍】排序不支持原生比较的对象
  3. GPU — 物理 GPU 虚拟化技术
  4. mac 推荐一款本机截屏找latex公式软件Mathpix 亲测有效
  5. LeetCode 531. 孤独像素 I
  6. 孕妇能长期在计算机屏幕前工作吗,怀孕了在电脑前工作怎么办
  7. 计算机初试占比高的学校,复试压力小,初试占比70%及以上的院校汇总!
  8. 【招聘内推】猎聘网招聘推荐算法工程师
  9. LeetCode 410. Split Array Largest Sum
  10. Proteus ISIS仿真软件中英文元件名称对照
  11. 广告终结者自定义过滤搜集
  12. 4款好用的Android设备HTML编辑器
  13. c语言流水灯循环左移程序,51单片机流水灯左移 右移控制程序
  14. 数字孪生是什么?以山海鲸智慧园区三维可视化系统为例说明
  15. linux刻录光盘空间不足,Linux下的光盘刻录技巧
  16. Handheld Multi-Frame Super-Resolution论文理解
  17. 一位厦门大学CV硕士毕业生文言文致谢!畅聊三年求学路
  18. solidity投票合约在bcos上的部署及解析(三)
  19. OpenCV(Python)颜色识别(一)
  20. Handling 2 trigger(s) that missed their scheduled fire-time,JobPersistenceException: Couldn't store

热门文章

  1. 阿里面试_技术问题和经验总结
  2. vs 编译错误 The name 'InitializeComponent' does not exist in the current context in WPF application...
  3. mac 下基于firebreath 开发多浏览器支持的浏览器插件
  4. 同学的博客,没想到也这么多文章。
  5. 后续的C++测试并不一定会成功
  6. 飞鸽传书2009绿色版 官方网站下载地址
  7. 浅谈飞鸽传书实现原理
  8. 别让Vue3.0的谣言害了你!
  9. 第十四节:ES6的 Iterator 遍历器到底是什么?
  10. 服务器响应401,服务器返回HTTP响应代码:401,URL:https