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を行うと回避できると思われます。