根据上一篇博文,php调用c#生成的动态库,运行测试时报Fatal error: Class 'COM' not found in XXXXXXXXX

原因是php.ini中未开启COM组件的应用,解决方法

查看php.ini中是否已经开启了com.allow_dcom = true

从php/ext/里面查找一下有没有这个php_com_dotnet.dll这个文件

如果没有网上下载个,一般都会有的吧应该大概可能。。

然后查找这个php.ini里面查找下#extension=php_com_dotnet.dll把前面的#号去掉

如果找不到就复制,手动添加一下

然后输出下phpinfo()

看看有没有com_dotnet 标签中

COM support enabled

DCOM support enabled

.Net support       enabled

表示COM组件开启成功

然后新建一个php文件在里面写上:

$com = new COM('word.application');  (#注意word.application 是电脑中必须有word文档才可以的)

echo $com;

如果没错的话应该会显示    Microsoft Word 说明COM扩展已经安装完成了!

再次运行上次博文中的测试程序,能正常显示“Hello,World”

c#动态库注册和反注册的几个命令

1、添加程序集到全局缓存,以便于在任意位置注册该dll组件
copy SendMail.dll 到 gacutil命令相同的目录
(命令参考目录 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools,gacutil运行环境版本不限,示例使用NETFX 4.5.1)
执行:gacutil /i SendMailLib.dll
 
 
2、注册组件及类型到注册表
命令行转到regasm对应的目录,这里不需要指定SendMailLib.dll位置,自动从全局缓存获取,
命令参考目录:C:\Windows\Microsoft.NET\Framework64\v4.0.30319 </div><div>    (注意:版本必须根据操作系统选择 x86 / 64bit, 否则注册后无法调用)
执行:
regasm SendMailLib.dll
 
动态库是否注册可在注册表中用CTRL-F查看
 
3、注销组件,并清除相应缓存
regasm SendMailLib.dll /unregister
pause gacutil /u SendMailLib

php调用C#生成的dll(二)的更多相关文章

  1. c++调用matlab生成的Dll动态连接库

    点击打开链接http://download.csdn.net/detail/nuptboyzhb/4228429 c++调用matlab生成的Dll动态连接库 实验平台:   matlab 7.0(R ...

  2. C++调用C#生成的DLL文件的各种问题

    C++调用C#生成的DLL文件: 首先选择建立一个C#的类库,然后再按照需求编写需要的函数 之后,对于C++调用过程需要注意的几点: 1.使用#using <....some.dll>指出 ...

  3. 示例 - 如何在NodeJS中调用SS生成的DLL

    要想在NodeJS中调用SS生成的DLL, 需要借助EdgeJS. EdgeJS: http://tjanczuk.github.io/edge/ 如果你还不知道如何在SS中生成DLL, 请查看: S ...

  4. C#调用Matlab生成的Dll

    问题描述:最近开发需要调用matlab生成的DLL,在New MWNumericArray 对象的时候报错,提示未将对象引用到对象的实例. 问题分析:因为MWArray.dll是Matlab提供的DL ...

  5. #Lua:Lua调用C++生成的DLL库

    Lua调用C++生成的DLL库 本文参考了某大佬的博客,写得十分详细,推荐!!! 需求: 在之前的求解器中添加了Lua库,使得程序可以在Lua脚本中实现自定义函数功能,考虑到未来可能需要与第三方程序库 ...

  6. WPF开发的界面调用C++生成的dll文件

    以引用d1.dll为例. [生成d1.dll] 文件——新建——项目——Visual C++——Win32项目,选择DLL,点击Finish.在d1.cpp中添加代码 #include "s ...

  7. Java採用JNI调用VC++生成的dll(Java与C++交互)

    应项目需求,须要android调用java,java再调用C++实现android一个图片匹配的功能,我们作为java组须要和C++和Android进行交互.以下是java和C++採用JNI的方式进行 ...

  8. Qt Creator调用VS2008生成的DLL注意事项 good

    问题:生成的dll文件QT无法静态/隐式调用 分析:调用的lib库可能是msvc编译的,而我用Qt调用,Qt默认编译器是minGW,两种编译器生成的函数名不一样,所以调用的时候你要用哪个函数,编译结果 ...

  9. WPF调用C++生成的dll文件(示例)

    注:笔者使用的VS版本为2019.1.打开VS2019,选择文件 -> 新建 -> 项目 2.选择项目 新建项目时选择C++“控制台应用”语言:C++平台:Windows项目类型:空项目 ...

随机推荐

  1. L270 运动前要热身

    If I'm being really honest, the only time I actually remember to stretch before a workout is when I' ...

  2. leetcode56:合并区间

    给出一个区间的集合,请合并所有重叠的区间.(解题思想来源于:https://blog.csdn.net/qq_34364995/article/details/80788049 ) 示例 1: 输入: ...

  3. python DRF获取参数介绍

    DRF获取参数的方式 例如url url(r'^demo/(?P<word>.*)/$', DemoView.as_view()) 在类视图中获取参数 url:http://127.0.0 ...

  4. python中闭包

    闭包是指内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure). 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变 ...

  5. 3--Selenium环境准备--Eclipse 引入 selenium-server包

    1.下载selenium-server包   selenium-server-standalone包是Seleniumd的核心jar包,其中包含了各种元素定位和调用浏览器的方法.下载jar包后,在ID ...

  6. 【转载】 强化学习(三)用动态规划(DP)求解

    原文地址: https://www.cnblogs.com/pinard/p/9463815.html ------------------------------------------------ ...

  7. php获取真实ip地址(转)

    REMOTE_ADDR只能获取访问者本地连接中设置的IP,如中南民族大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址, 如果访问者使用代理服务器,将不 ...

  8. Refused to execute inline event handler because it violates the following Content Security Policy directive: "xxx". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...')

    /********************************************************************************* * Refused to exec ...

  9. LAMP搭建个人网站

    最近发了一篇paper,需要把成果展示出来,想到正好想到自己有一个阿里云服务器,并且在万网上看到www.yongjieshi.com这个域名一年才50块钱,于是决定搭建一个自己的网站 如果linux玩 ...

  10. Linux 下 SVN服务器搭建

    使用Linux(CentOS)搭建SVN服务器全攻略 虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一 ...