直接使用 COM 和 DOTNET 簡直是一場惡夢。DOTNET 只允許您以 .Net 3.5 和更舊版本為目標,而且所有二進位檔都需要是 COM 可見的。這基本上表示您需要為所有東西編寫自己的 .Net 二進位檔,至少是包裝器。
有一個建構在 COM 類別之上的程式庫(NetPhp)可以解決所有這些問題,因此您可以獲得類似以下的程式碼
$manager = new \NetPhp\Core\NetManager();
$manager->RegisterAssembly('mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', 'mscorlib');
$manager->RegisterClass('mscorlib', 'System.IO.File', 'File');
$manager->RegisterClass('mscorlib', 'System.IO.FileOptions', 'FileOptions');
$file = $manager->Create('mscorlib', 'File');
$fileoptions = $manager->Create('mscorlib', 'System.IO.FileOptions')->Enum('Encrypted');
$file->Create("C:\\www\\prueba.tres", 2048, $fileoptions);