これはInterSystems FAQ サイトの記事です。
- まず予め Visual Studioを使用して、呼び出したい内容のクラスライブラリを作成します。
- そのプロジェクトをコンパイルし、DLLを作成します。
- 管理ポータルでオブジェクトゲートウェイを作成します。 システム管理 > 構成 > 接続性 > オブジェクトゲートウェイ ゲートウェイ名 : testGateway サーバ名 / IPアドレス : 127.0.0.1 ポート : 55000 (後はデフォルト)
- testGateway を開始します。
※管理ポータルから、もしくはコマンドから開始できます。
do ##class(%Net.Remote.Service).StartGateway(gateway.Name)
ObjectScriptObjectScript
- 以下のいずれかの方法でDLLを呼び出すプロキシクラスを作成します。
a. コマンドで作成する場合
set dllPath="C:\temp\TestDll.dll
do ##class(%Net.Remote.Gateway).%ExpressImport(dllPath, 55000, "127.0.0.1")
ObjectScriptObjectScript
b. スタジオで作成する場合
[ツール] - [アドイン] - [.Net ゲートウェイウィザード] ⑥ 以下のような手順でコードを実行します。
例:
Set gateway=##class(%Net.Remote.Gateway).%New()
set host="localhost"
set port=55000
set namespace="USER"
set timeout=2
Set classPath=##class(%ListOfDataTypes).%New()
Set samplePath="C:\temp\TestDll.dll"
Do classPath.Insert(samplePath)
Set status=gateway.%Connect(host,port,namespace,timeout,classPath)
write !,"status: ",status
set cl=##class(TestDll.MyDllClass).%New(gateway)
do cl.test(gateway)
ObjectScriptObjectScript
最後の行の do cl.test(..) は、VisualStudioで作成したクラスライブラリの関数になります。
呼び出し引数は、作成したプロキシクラスに従ってください。