新增類庫項目
依次選擇“檔案”》“建立”》“項目”,然後選擇“類庫(.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
$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