新增类库项目
依次选择“文件”》“新建”》“项目”,然后选择“类库(.net framework)”
添加引用
在“解决方案资源管理器”的“引用”点击鼠标右键,才程序集中搜索“InteropServices”,勾选“System.Runtime.InteropServices”
com可见
在“解决方案资源管理器”的项目名称上点击鼠标右键,选择“属性”,然后在“应用程序”面板选择“程序集信息”,勾选“使程序集COM可见”
签名
在“解决方案资源管理器”的项目名称上点击鼠标右键,选择“属性”,然后在“签名”面板勾选“为程序集签名”,然后在下拉菜单选择“新建”,输入“签名文件名称”,取消“使用密码保护密钥文件”勾选,点击确认
创建程序
using System.Runtime.InteropServices;
namespace HelloWorld
{
[ComVisible(true)]
public class Say
{
public string Hello()
{
return "Hello World";
}
}
}
发布dll
点击主菜单“生成”》“生成解决方案”(或者按F6)
注册com
按键盘上的win键,打开开始菜单,输入”vs”搜索,鼠标右键点击”VS 2017开发人员命令提示符”,选择用管理员身份打开;
进入生成的dll目录(通常在项目的bin/release目录下)
cd d:/helloworld/bin/release
regasm HelloWord.dll
gacutil /i HelloWord.dll
PHP调用com
<?php
$r=new Com("HelloWorld.Say");
$s=$r->Hello();
echo $s;
调用出现Uncaught com_exception: Failed to create COM object
http://www.drupalonwindows.com/en/blog/calling-net-framework-and-net-assemblies-php