子プロセス stdout から 1 行取得
mcp_proc_recv_line hid, var, buflen
hid : ハンドル var : 結果を格納する文字列変数 (sdim 済) buflen : 変数のバッファサイズ
(プラグイン / モジュール : hspmcp.dll)
子プロセスの stdout から改行 (\n) で区切られた 1 行を取り出します。 バックグラウンド reader thread が常時 ReadFile を回しているので、 本命令はノンブロッキングで、buffer に未到達の場合はすぐ 0 を返します。 戻り値: >0 : 読めたバイト数 (改行は含まない) 0 : まだ buffer に行が無い (await でリトライ可) -1 : ハンドル無効
| mcp_proc_send | 子プロセス stdin にデータを書き込む | (hspmcp.dll) |
| プラグイン / モジュール | hspmcp.dll |
| バージョン | 1.0 |
| 作成日 | 2026-04-14 |
| 著作者 | IronHSP / hspmcp |
| URL | https://github.com/inovia/IronHSP |
| 備考 | hspmcp.dll は HSP からは扱いづらい以下の処理を C++ で隠蔽します:
* CreateProcess + 匿名 pipe で子プロセスを spawn * 子プロセス stdin/stdout を行単位で読み書き * バックグラウンド reader thread + 内部 line buffer * 自プロセスの stdin/stdout (HSP3CL を MCP server として動かすとき) 主に Anthropic Model Context Protocol (MCP) の stdio transport 実装に使うために作りましたが、汎用の "process pipe wrapper" として 他の用途にも使えます (子プロセス起動 + パイプ通信が必要な任意の場面)。 HSP からは package/win32/common/iron_mcp_client.hsp と iron_mcp_server.hsp を include して使うのが推奨です。 |
| タイプ | 拡張命令 |
| グループ | hspmcp ― process spawn |
| 対応環境 |
|
| hs ファイル | hsphelp\hspmcp.hs |