English help on website



createobject関数(Ver9.35対応版)
目次COMの呼び出しcreateobject関数− .net framework 4.xのマネージコード
管理者による登録なしでの作成(.net framework 4.xのマネージコード)

.net framework 4.xで作成したクラスライブラリをCOMとして使用可能にしているとき、通常は、管理者権限でregasm.exeを通じてあらかじめ登録する必要があります。
V8.96以降では、第1パラメータにDLLファイル名、第2パラメータにProgIDを記述することで、現在のユーザーに対して登録し、COMオブジェクトとして作成することができます。
#obj=createobject(@"C:\Folder\ClassLibrary1.dll","ClassLibrary1.Test1");
現在のユーザーへの登録は、実際にはHmRegasm.exeという秀丸エディタに付属の実行ファイルで行われ、この実行ファイルは.net framework 4.5が必要です。

秀丸エディタが既に管理者として実行されている場合は、現在にユーザーに対しての登録は成功しても、インスタンスの作成には失敗するようです。この挙動は一部のWindowsの不具合の可能性もあるので、Windowsのバージョン等によって将来変わるかもしれません。
この問題を回避するには、platformで管理者かどうかを判別して、通常の登録のように全てのユーザーに対してregasmを行うと回避できると思われます。