IronHSP プラグイン & モジュール リファレンス

最終更新: 2026-04-18 / 対象: HSP3 (hsp3net) + IronHSP 拡張

全 151 iron_* モジュール + 22 C++ プラグイン DLL + hspd2d + DxLib 統合

IronHSP Simple モジュール集 (iron_*.hsp) は、HTTP 通信、JSON、AI API、音声認識、DB、アーカイブ、Webcam、MCP、暗号化、正規表現、グラフ描画など、 モダンな機能を HSP らしい 1~2 行のシンプルな書き方で使えるようにまとめたラッパ群です。 全部 #include するだけで使えます。

目次

総合一覧表 (151 モジュール)

全 iron_* モジュールの一覧です。実装方式バニラ HSP3 互換性を確認できます。

凡例: Pure HSP 外部 DLL 不要、HSP スクリプトのみ / C++ DLL 専用 C++ プラグイン DLL が必要 / .NET (hsp3net) .NET Framework 機能を使用 / 外部exe 外部実行ファイルが必要
互換: バニラ HSP3 でも動作 / DLL が必要だがランタイム問わず / × hsp3net 専用
モジュール名カテゴリ実装方式互換一行説明
iron_7zデータC++ DLL7z / zip / tar.gz / xz / rar 等 40+ アーカイブ形式の圧縮・展開・一覧
iron_aiAI/MLPure HSPOpenAI 互換 Chat API クライアント (OpenAI / Anthropic / Ollama / Groq 等)
iron_array2ユーティリティPure HSP配列ユーティリティ (sum / min / max / reverse / unique / sort)
iron_asyncシステムPure HSP.NET Task.Run 非同期実行 + CSharpCodeProvider による C# 動的評価 (cs_eval / async_run)
iron_audioloopマルチメディアC++ DLLWASAPI 音声ループバック録音 (PC 再生音を WAV 保存)
iron_barcodeグラフィックスPure HSP1D バーコード BMP 生成
iron_bleネットワークC++ DLLBLE GATT セントラル (WinRT -- スキャン / 接続 / サービス列挙 / 読み書き / Notify 購読)
iron_bloomデータPure HSPブルームフィルタ (確率的メンバーシップ判定)
iron_cacheデータPure HSPTTL 付きインメモリキャッシュ
iron_cameraマルチメディアC++ DLLWebcam 取り込み (OpenCV / hspcv4 backend)
iron_camera_mfマルチメディアC++ DLLWebcam + 録画 + マイク録音 (Pure Media Foundation)
iron_captureマルチメディアC++ DLLDXGI Desktop Duplication による画面キャプチャ
iron_chartグラフィックスPure HSPChart.js + ブラウザによるグラフ描画 (棒/折れ線/円/レーダー等)
iron_chart_d2dグラフィックスPure HSP×hspd2d (Direct2D) 直接描画のグラフ (WebView2 不要)
iron_clipシステムPure HSPクリップボード文字列の読み書き
iron_clipboard2システムPure HSPクリップボード拡張 (.NET) -- テキスト / 画像 (PNG/JPEG/BMP 保存) / HTML / ファイルドロップリスト対応
iron_collectionデータPure HSPスタック / キュー データ構造
iron_colorユーティリティPure HSP色変換 (RGB / HSV / HEX)
iron_combinatorics数学Pure HSP組み合わせ論 (factorial / combination / gcd / is_prime)
iron_complex数学Pure HSP複素数演算
iron_crypto暗号化C++ DLLBlowfish / RC4 / ChaCha20 / AES-256-CBC / HMAC / PBKDF2
iron_crypto_net暗号化.NET×.NET System.Security.Cryptography (SHA256 / 暗号化安全乱数)
iron_csvデータPure HSPRFC 4180 準拠 CSV パーサ / ビルダ (ダブルクォート / 改行対応 / TSV 切替可)
iron_curvefit数学Pure HSPカーブフィッティング (最小二乗法)
iron_darkmodeUI/GUIPure HSPウィンドウのダークモード有効化 (DwmSetWindowAttribute)
iron_datetimeユーティリティPure HSP日付/時刻取得 (ISO 8601 / Unix timestamp / 曜日)
iron_dbデータC++ DLLSQLite 3.46 組み込みデータベース
iron_designerUI/GUI.NET×WebView2 GUI デザイナー (ドラッグ配置 → HSP コード自動生成)
iron_dialogUI/GUIPure HSPモダンファイルダイアログ / フォルダ選択 (IFileOpenDialog COM)
iron_diffテキストPure HSPテキスト差分 (行単位 diff)
iron_dockingUI/GUI.NET×簡易ドッキングパネル (SplitContainer、左/右/下パネル配置)
iron_docking_proUI/GUI.NET×VS 風ドッキング (WeifenLuo) -- フローティング/自動非表示/タブドキュメント対応
iron_docx.NET 専用.NET×Word .docx ファイル生成
iron_dotenvユーティリティPure HSP.env ファイルローダー (環境変数風設定)
iron_dpiUI/GUIPure HSPPer-Monitor DPI V2 対応 (dpi_set_awareness / dpi_scale)
iron_dragdropUI/GUIPure HSPドラッグ&ドロップ受け取り
iron_duckdbデータC++ DLLDuckDB 組み込み分析 DB (CSV/Parquet SQL 直接クエリ / インメモリ / 集計・結合・ウィンドウ関数)
iron_embeddingAI/MLPure HSPテキスト埋め込み + ベクトル検索 (コサイン類似度)
iron_eventユーティリティPure HSPイベントエミッター (Pub/Sub パターン)
iron_excel.NET 専用.NET×Excel .xlsx 読み書き (OpenXML 直接操作、Office 不要)
iron_exifマルチメディアPure HSPEXIF メタデータ読み取り (GDI+ PropertyItem)
iron_fakerテストPure HSPフェイクデータ生成 (名前 / メール / 電話番号)
iron_ffmpegマルチメディア外部exeFFmpeg ラッパー (変換 / 抽出 / トリム)
iron_fft数学Pure HSP高速フーリエ変換 (Cooley-Tukey)
iron_filter数学Pure HSP信号フィルタ (移動平均 / ローパス / ハイパス)
iron_folderシステムPure HSP特殊フォルダパス取得 (Desktop / AppData / Documents 等)
iron_formsUI/GUI.NET×WinForms コントロール (Anchor/Dock/DataGridView/MenuStrip/StatusStrip/ProgressBar/DateTimePicker)
iron_fsシステムPure HSPファイルシステム操作 (コピー / 移動 / 削除 / サイズ取得)
iron_ftpネットワークPure HSPFTP クライアント (WinINet API、パッシブモード)
iron_ftp_net.NET 専用.NET×FTP クライアント .NET 版 (FTPS/SSL 対応)
iron_fwatchシステムPure HSPファイル / ディレクトリ変更監視 (FindFirstChangeNotification、フィルタ: 名前/サイズ/書込み/属性)
iron_fwatch_net.NET 専用.NET×ファイル監視 .NET 版 (FileSystemWatcher イベント駆動)
iron_gaAI/MLPure HSP遺伝的アルゴリズム
iron_gameゲームPure HSPゲームユーティリティ (AABB/円 衝突判定 4 種 / 2D ベクトル / イージング 10 種 / タイルマップ / FPS カウンタ)
iron_gdiplusグラフィックスPure HSPGDI+ 画像処理 (.NET) -- スクリーンショット / リサイズ / 回転 / グレースケール / 透かし / PNG・JPEG 保存
iron_geometry数学Pure HSP2D/3D 幾何学 (面積 / 体積 / 距離)
iron_globシステムPure HSP再帰ファイル検索 (glob パターン)
iron_graph数学Pure HSPグラフ探索 (BFS / ダイクストラ最短経路)
iron_hash暗号化Pure HSPSHA-1/256/384/512 / MD5 / Base64 (BCrypt + Crypt32)
iron_hotkeyUI/GUIPure HSPグローバルホットキー登録 (RegisterHotKey)
iron_htmlテキストC++ DLLHTML パース (タグ検索 / 属性取得 / テキスト抽出)
iron_html_net.NET 専用.NET×HTML タグ除去 / リンク抽出 (.NET 版)
iron_httpネットワークPure HSPWinHTTP クライアント (GET/POST + カスタムヘッダ + SSE ストリーミング + HTTPS 自動 TLS + タイムアウト制御)
iron_humanizeユーティリティPure HSP人間にやさしい書式変換 (バイト数 / 数値カンマ区切り)
iron_imeUI/GUIPure HSPIME 制御 (on / off / モード切替)
iron_iniシステムPure HSPINI 設定ファイルの読み書き (GetPrivateProfile*)
iron_jsonデータC++ DLLJSON パース / ビルド (JSONPath / 整形 / minify)
iron_jwt暗号化Pure HSPJWT トークンの Base64URL デコード (ヘッダー / ペイロード)
iron_kmeansAI/MLPure HSPK-means クラスタリング
iron_logテストPure HSPログ出力 (INFO / WARN / ERROR レベル + ファイル出力)
iron_magnifyUI/GUIPure HSP画面拡大 (Magnification API)
iron_markdownテキストPure HSPMarkdown から HTML への変換
iron_math_net.NET 専用.NET×MathNet.Numerics 連携 (統計/線形回帰/正規分布/連立方程式/行列式/スプライン補間/求根)
iron_matrix数学Pure HSP行列演算 (積 / 転置 / 行列式 / 内積 / 外積)
iron_mcp_clientAI/MLC++ DLLModel Context Protocol クライアント (stdio + HTTP)
iron_mcp_serverAI/MLC++ DLLHSP3CL を MCP stdio server 化 (Claude Desktop 連携)
iron_mecabテキストC++ DLLMeCab 形態素解析
iron_mediapipeAI/MLC++ DLLMediaPipe 手検出 / 姿勢推定 (TFLite backend)
iron_midiマルチメディアC++ DLLMIDI 入出力 (GM 音色再生 / リアルタイム受信)
iron_montecarlo数学Pure HSPモンテカルロ法 (円周率推定 / 数値積分)
iron_msgpack.NET 専用.NET×MessagePack シリアライズ
iron_netinfoネットワークPure HSPネットワーク状態取得 (接続確認 / IP アドレス)
iron_nnAI/MLPure HSPニューラルネットワーク (1 隠れ層 / XOR 学習)
iron_oauthネットワークPure HSPOAuth 2.0 Authorization Code Flow (PKCE / localhost リダイレクト受信 / トークン交換)
iron_ode数学Pure HSP常微分方程式ソルバー (Runge-Kutta 4次)
iron_office.NET 専用.NET×Office COM 自動化 (.NET COM Interop / Type.GetTypeFromProgID + dynamic dispatch) -- Excel セル読み書き / Excel・Word・PPT → PDF 変換
iron_onnxAI/MLC++ DLLONNX Runtime 推論 (DirectML GPU 対応)
iron_optimize数学Pure HSP最適化 (黄金分割法)
iron_pathシステムPure HSPパス操作 (結合 / 拡張子 / ファイル名 / 存在確認)
iron_pcre2正規表現C++ DLLPCRE2 正規表現 (Perl 互換 / Unicode / 先読み後読み)
iron_pdfデータC++ DLLPDF テキスト抽出 + 任意倍率レンダリング + メタデータ取得 (PDFium、パスワード対応)
iron_perfシステムPure HSPマイクロ秒精度パフォーマンスタイマー (QPC)
iron_pptx.NET 専用.NET×PowerPoint .pptx 生成
iron_printUI/GUIPure HSP印刷ダイアログ + GDI 印刷
iron_processシステムPure HSPプロセス起動 + stdout キャプチャ + 終了コード取得
iron_progress_clユーティリティPure HSPCLI プログレスバー表示
iron_qrグラフィックスPure HSPQR コード生成 (qrcode-generator JS CDN → 一時 HTML → ブラウザ表示)
iron_quaternion数学Pure HSPクォータニオン (3D 回転)
iron_random_dist数学Pure HSP確率分布乱数 (正規 / 指数 / ポアソン)
iron_regex正規表現C++ DLL正規表現 (C++ std::regex / ECMAScript)
iron_regex_net.NET 専用.NET×正規表現 .NET 版 (名前付きグループ / Split)
iron_registryシステムPure HSPレジストリ読み書き (advapi32 API)
iron_registry_net.NET 専用.NET×レジストリ操作 .NET 版 (Microsoft.Win32.Registry)
iron_reportユーティリティPure HSP帳票出力 (HTML テンプレート + ブラウザ表示)
iron_retryユーティリティPure HSPリトライ実行 (指数バックオフ付き)
iron_ribbonUI/GUI.NET×WebView2 リボン UI (タブ/ボタン/アイコン + Light/Dark テーマ + postMessage 通知)
iron_ribbon2UI/GUI.NET×WinForms ToolStrip 簡易リボン (TabControl + ToolStrip タブ付きツールバー)
iron_ribbon_nativeUI/GUIPure HSPWindows Ribbon Framework (UIRibbon COM / XML マークアップ / hspribbon.dll)
iron_ribbon_proUI/GUI.NET×WinForms リッチリボン (FlowLayoutPanel グループ / 大小ボタン / ドロップダウン)
iron_ruffleマルチメディアPure HSPFlash SWF 再生 (Ruffle + WebView2)
iron_scraperネットワークPure HSPWeb スクレイピング (リンク / テキスト抽出)
iron_sentimentAI/MLPure HSP感情分析 (キーワードベース)
iron_serialシステムPure HSPシリアルポート RS-232 / USB CDC
iron_serviceシステムPure HSPWindows サービス制御 (start / stop / status)
iron_shellシステムPure HSPShellExecute / ゴミ箱送り / .lnk ショートカット作成
iron_smtpネットワークC++ DLLSMTP メール送信 (AUTH LOGIN / Winsock2)
iron_smtp_net.NET 専用.NET×メール送信 .NET 版 (TLS/SSL 自動対応)
iron_spectrumマルチメディアPure HSPスペクトラム解析 (簡易 DFT)
iron_speechAI/MLC++ DLL音声認識統一 API (5 バックエンド: Cloud / whisper / Vosk / SAPI / WinRT)
iron_splashUI/GUIPure HSPスプラッシュスクリーン (画像表示 + 自動消去)
iron_sshネットワークC++ DLLSSH / SFTP クライアント (libssh2 + WinCNG)
iron_stat数学Pure HSP統計関数 (平均 / 中央値 / 分散 / 標準偏差 / パーセンタイル)
iron_statemachineユーティリティPure HSP有限状態マシン
iron_stopwatchユーティリティPure HSP高精度ストップウォッチ (QPC マイクロ秒)
iron_str2テキストPure HSP文字列ユーティリティ (trim / upper / lower / contains / replace)
iron_strbufユーティリティPure HSP文字列ビルダー (高速な文字列結合)
iron_summarizeAI/MLPure HSP抽出型テキスト要約
iron_synthマルチメディアPure HSPオーディオ合成 WAV 生成 (サイン波 / 矩形波 / ノイズ)
iron_sysinfoシステムPure HSPOS / CPU / ユーザ情報取得
iron_table2ユーティリティPure HSPCLI テーブル整形出力
iron_taskシステムPure HSPタスクスケジューラ (schtasks ラッパー)
iron_testテストPure HSPユニットテストフレームワーク (assert_eq / test_begin / test_end)
iron_tfliteAI/MLC++ DLLTensorFlow Lite 推論 + MediaPipe 手検出ヘルパ
iron_toastUI/GUIPure HSPタスクトレイバルーン通知 (Shell_NotifyIcon)
iron_toast_winrtUI/GUIC++ DLLWinRT トースト通知 (アクションセンター対応)
iron_touchUI/GUIPure HSPタッチ入力シミュレーション (InjectTouchInput)
iron_trayUI/GUIPure HSP通知領域 (タスクトレイ) アイコン
iron_uriユーティリティPure HSPURI パーサ (scheme / host / port / path / query / fragment)
iron_urlユーティリティPure HSPURL 操作ユーティリティ
iron_urlencodeユーティリティPure HSPURL エンコード / デコード
iron_uuidユーティリティPure HSPUUID v4 生成
iron_validateユーティリティPure HSP入力バリデーション (メール / URL / 数値 / 日付等)
iron_videoマルチメディアPure HSP×動画/音声再生 (MFPlay / シーク / 速度変更 / 音量)
iron_wasmシステムC++ DLLWebAssembly ランタイム (Wasm3 embed / .wasm 関数呼び出し)
iron_webpdfユーティリティPure HSPWeb ページ PDF 出力 (WebView2 経由)
iron_webserverネットワークC++ DLLlocalhost HTTP/HTTPS/WebSocket サーバ (HTTP.sys)
iron_webview2UI/GUIC++ DLLEdge WebView2 (Navigate / JS 実行 / HSP<->JS bridge)
iron_wgcaptureマルチメディアC++ DLLWindows.Graphics.Capture スクリーン/ウィンドウキャプチャ
iron_xlsxデータPure HSPExcel .xlsx 読み書き (OpenXML 直接解析 / hsp7z で ZIP 展開 / Excel 不要)
iron_xmlデータPure HSPXML 読み書き (MSXML DOM、COM 経由、ファイル / 文字列パース対応)
iron_yamlデータPure HSP簡易 YAML パーサー

Pure HSP: 93 / C++ DLL: 33 / .NET (hsp3net): 20 / 外部 exe: 1 -- バニラ互換 ○: 91 / △ (DLL): 33 / × (hsp3net): 27

C++ プラグイン DLL 一覧

iron_* モジュール群の足回りとして新規開発した独立 C++ プラグイン DLL (合計 22 個 / 529 export 関数):

DLL役割関数数対応
hspjson.dll自前 JSON parser/writer (依存ゼロ、~300 KB)10Win32 + x64
hspmfcam.dllPure Media Foundation Webcam キャプチャ + 録画 + マイク録音 (最大 256 デバイス並列)68Win32 + x64
hspmcp.dllModel Context Protocol プロセスパイプヘルパ (最大 64 並列)7Win32 + x64
hspwhisper.dllwhisper.cpp オフライン音声認識 (99 言語)4x64
hspvosk.dllVosk (Kaldi) オフライン音声認識 (24+ 言語)4x64
hspsapi.dllWindows SAPI 5 音声認識 (OS 標準)3Win32 + x64
hspwinrtspeech.dllWinRT Speech マイクライブ認識3x64
hspwebsrv.dllHTTP/HTTPS/WebSocket サーバ (HTTP.sys kernel-mode)9Win32 + x64
hsp7z.dll7-Zip CLI ラッパ (40+ フォーマット)2Win32 + x64
hspdb.dllSQLite 3.46.1 amalgamation (最大 32 DB / 64 query)14x64
hspmidi.dllwinmm MIDI in/out (GM 音色 + リアルタイム受信)16x64
hspwasm.dllWasm3 WebAssembly ランタイム embed10x64
hsppdf.dllPDFium PDF テキスト抽出 + ビットマップ化11x64
hspduckdb.dllDuckDB 分析 DB (CSV/Parquet 直接クエリ)10x64
hspwebview2.dllEdge WebView2 統合 (Navigate / JS / postMessage bridge)12x64
hsponnx.dllONNX Runtime (DirectML GPU 推論)13x64
hspllama.dllllama.cpp ローカル LLM 推論 (GGUF)11x64
hsptflite.dllTensorFlow Lite + MediaPipe 手検出19x64
hspwinrtocr.dllWindows.Media.Ocr ローカル OCR5x64
hspwgcapture.dllWindows.Graphics.Capture スクリーンキャプチャ8x64
hspble.dllBLE GATT クライアント (scan / connect / r/w / notify)13x64
hspcv4.dllOpenCV 4.12 統合 (画像 / フィルタ / DNN / 追跡 / ArUco 等)277x64

目玉機能: 描画エンジン & 画像処理

DirectWrite + Direct2D による高品質テキスト描画、DxLib の 2,548 関数をまるごと HSP から呼び出せる統合ヘッダ、OpenCV 4.12 の 277 関数を搭載する画像処理プラグインを含みます。

hspd2d (DirectWrite + Direct2D + WIC)

hspd2d --- DirectWrite + Direct2D + WIC 統合モジュール

ソース: package/win32/common/hspd2d.hsp / ヘルプ: package/hsphelp/hspd2d.hs

hspd2d.hsp は DirectWrite + Direct2D + WIC を HSP の COM 機能 (#usecom / #comfunc / newcom) だけで wrap した Pure HSP モジュールです。 C++ DLL を一切介さずに、ハードウェアアクセラレーション対応の高品質テキスト描画と PNG 出力を実現します。 色付き絵文字 (Segoe UI Emoji 等) の描画にも対応しており、hsp3net 環境で DirectWrite の ClearType / サブピクセルレンダリングを 活用した美しいフォント表示が可能です。オフスクリーン画像を複数管理でき、それぞれに独立して描画操作を行えます。

命令/関数説明
d2d_initCOM 初期化 + DWrite / D2D / WIC factory 作成
d2d_image_create id, w, hオフスクリーン画像 (32bpp PBGRA) を作成
d2d_image_select idカレント描画対象を切り替え
d2d_clear r, g, b, a単色で塗りつぶし
d2d_color r, g, b, a以後の描画色を設定
d2d_font "family", size, weight, italicテキストフォーマット作成
d2d_drawtext "text", x, y, w, h文字列描画 (色付き絵文字対応)
d2d_image_save id, "out.png"PNG として保存
d2d_shutdownリソース解放

DxLib 統合 (hspdxlib)

hspdxlib --- DxLib (DX ライブラリ) 完全統合ヘッダ

ソース: package/win32/common/hspdxlib.as / hspdxlib_const.as / hspdxlib_struct.as / hspdxlib_macro.as / ヘルプ: package/hsphelp/hspdxlib.hs (65,596行)

DxLib (DX ライブラリ) は、DirectX を簡単に扱うための国産 C++ ライブラリで、2D/3D ゲーム開発に広く使われています。 hspdxlib.as は DxLibW (Unicode 版 DLL) のエクスポート関数を HSP の #cfunc / #func / #cfuncst で宣言した自動生成ヘッダです。 #include "hspdxlib.as" の 1 行で DxLib のほぼ全機能にアクセスでき、C++ で書くのと同等のゲーム開発が HSP だけで可能になります。

DxDLLW.cs (DxLib 3.24f) から Python スクリプトで自動生成しており、DxLib のバージョンアップにも追従できます。32bit / 64bit は __hsp64__ で自動判定し、DLL 名を DxLibW.dll / DxLibW_x64.dll に切り替えます。

ファイル構成

ファイル内容規模
hspdxlib.asメインヘッダ: 全関数の #cfunc / #func / #cfuncst 宣言 + 14 構造体定義 (#defstruct)1,425 #cfunc + 1,313 #func + 159 #cfuncst = 2,897 関数
hspdxlib_const.as定数定義 (#define): DX_SCREEN_BACK, KEY_INPUT_*, DX_BLENDMODE_* 等901 定数
hspdxlib_struct.as構造体のバッファオフセット定義: VERTEX2D, VERTEX3D, MATERIALPARAM 等55 構造体
hspdxlib_macro.asHSP 風の短縮名マクロ: dxinit / dxdraw / dxflip利便性マクロ

機能カテゴリ別の関数数

カテゴリ関数数代表的な関数
2D 描画~460DrawGraph / DrawRotaGraph / DrawModiGraph / DrawBox / DrawCircle / DrawLine / DrawPixel
文字列描画~170DrawString / DrawFormatString / DrawNString / DrawRotaString / DrawModiString
3D モデル (MV1)~372MV1LoadModel / MV1DrawModel / MV1SetPosition / MV1SetRotationXYZ / MV1SetupCollInfo / MV1CollCheck_Sphere
サウンド~200LoadSoundMem / PlaySoundMem / StopSoundMem / ChangeVolumeSoundMem / SetFrequencySoundMem
画面 / ウィンドウ~142SetGraphMode / ChangeWindowMode / SetDrawScreen / ScreenFlip / ClearDrawScreen / SetBackgroundColor
入力 (キーボード/マウス/ジョイパッド/タッチ)~140CheckHitKey / GetMousePoint / GetJoypadInputState / GetTouchInputNum
画像読み込み / 管理~114LoadGraph / LoadDivGraph / CreateGraphFromMem / DerivationGraph / GetGraphSize
フォント~91CreateFontToHandle / SetDefaultFontState / GetDrawStringWidth / ChangeFontType
シェーダー~52LoadPixelShader / LoadVertexShader / SetUsePixelShader / SetShaderConstantF
Live2D Cubism~51Live2D_LoadModel / Live2D_DrawModel / Live2D_SetParameterValue
ネットワーク~37ConnectNetWork / MakeUDPSocket / NetWorkSendUDP / NetWorkRecvUDP / ProcessHttpRequestAsync
ファイル I/O~36FileRead_open / FileRead_gets / FileRead_close / SetUseDXArchiveFlag
動画再生~28PlayMovieToGraph / PauseMovieToGraph / SeekMovieToGraph / GetMovieStateToGraph
構造体値返し (#cfuncst)159GetCameraPosition / GetCameraTarget / VGet / VAdd / VScale / VCross / MGetIdent / MGetScale 等 (VECTOR / MATRIX 構造体を値で返す)
構造体値返し (#cfuncst): DxLib には VECTORMATRIX を値で返す関数が 159 個あります。これらは IronHSP の #cfuncst ディレクティブで宣言されており、戻り値は自動的に NSTRUCT 変数に格納されます。-> 演算子でメンバにアクセスできます:
pos = GetCameraPosition()
mes "x=" + pos->x + " y=" + pos->y + " z=" + pos->z

必要なファイル

#include "hspdxlib.as"

    ChangeWindowMode TRUE
    SetGraphMode 640, 480, 32
    SetMainWindowText "My Game"
    if DxLib_Init() == -1 : end
    SetDrawScreen DX_SCREEN_BACK
    white = GetColor(255, 255, 255)

*main
    ClearDrawScreen_1
    DrawString 10, 10, "Hello, DxLib!", white
    ScreenFlip
    if ProcessMessage() != 0 : goto *quit
    if CheckHitKey(KEY_INPUT_ESCAPE) == 1 : goto *quit
    goto *main

*quit
    DxLib_End
    end

hspcv4 (OpenCV 4.12)

hspcv4 --- OpenCV 4.12 統合プラグイン (277 関数)

ソース: package/win32/common/hspcv4.as / DLL: hspcv4.dll / ヘルプ: package/hsphelp/hspcv4.hs

OpenCV 4.12 をネイティブ C++ DLL として HSP から利用するための統合プラグインです。 画像は int ハンドル ID で管理し、cv4load / cv4save / cv4del で生成・保存・解放します。 HSP のカレントウィンドウへの描画は cv4getimg で直接コピー、逆に HSP の画面を OpenCV に取り込むには cv4putimg を使用。 全 277 関数は初心者向けアンダースコアなし API (cv4load, cv4save 等) と、 上級者向けアンダースコア付き API (cv4_erode, cv4_dnn_forward 等) に分けられています。

対応分野:

命令/関数説明
cv4load id, "image.jpg"画像読み込み (id にハンドル)
cv4save id, "out.png"画像保存 (拡張子で形式自動判別)
cv4getimg id, bmscrOpenCV 画像を HSP ウィンドウに転送
cv4putimg id, bmscrHSP ウィンドウ内容を OpenCV 画像に取り込み
cv4cvt src, dst, code色変換 (BGR→GRAY 等)
cv4resize src, dst, w, hリサイズ
cv4_gaussian_blur src, dst, kw, khガウシアンブラー
cv4_canny src, dst, th1, th2Canny エッジ検出
cv4_cascade_detect_multi h, img, rects, nHaar カスケード顔検出
cv4_dnn_read_net "model.onnx"DNN モデル読み込み
cv4_dnn_forward net_id, out_idDNN 推論実行
cv4_find_contours src, ...輪郭検出
cv4_orb_detect img, kp, nORB 特徴量検出
cv4_aruco_detect img, dict, corners, ids, nArUco マーカー検出
cv4del id / cv4resetハンドル解放 / 全解放

1. システム / ユーティリティ

OS 操作、ファイルシステム、設定管理、プロセス制御など基本的なシステム機能を提供するモジュール群です。 多くは Win32 API を #cfunc で直接呼ぶ Pure HSP 実装で、外部 DLL 不要です。

iron_ini --- INI 設定ファイル簡易ラッパ

ソース: package/win32/common/iron_ini.hsp / ヘルプ: package/hsphelp/iron_ini.hs

Win32 の GetPrivateProfileString / WritePrivateProfileString API を HSP から1行で使えるようにした薄いラッパ。 文字列・整数・実数それぞれ専用の読み書き API を提供し、SJIS ベースなのでエンコーディング変換不要。 セクション列挙やキー列挙にも対応。相対パスは絶対パスに自動変換される。

命令/関数説明
ini_setpath "config.ini"操作対象の INI ファイルパスを設定 (最初に必ず呼ぶ)
ini_get sec, key, defval文字列値を読み込み (refstr に格納)
ini_geti sec, key, defval整数値を読み込み (stat に格納)
ini_getd sec, key, defval実数値を読み込み (refdval に格納)
ini_set sec, key, val_str文字列値を書き込み
ini_seti sec, key, val_int整数値を書き込み
ini_delete_key sec, keyキーを削除
ini_section_keys sec, outセクション内のキー一覧を配列に取得
ini_section_names out全セクション名を配列に取得

iron_fs --- ファイルシステム操作 (コピー/移動/削除/属性)

ソース: package/win32/common/iron_fs.hsp / ヘルプ: package/hsphelp/iron_fs.hs

Win32 の CopyFileW / MoveFileW / DeleteFileW / GetFileAttributesW 等を直接呼ぶ Pure HSP 実装。 Unicode (wstr) 対応で日本語パスも問題なく扱える。ファイルサイズ取得、一時ファイル生成、読み取り専用フラグの確認/設定、 ディレクトリ作成・削除、ファイル一覧取得 (FindFirstFileW) など基本的なファイル操作を網羅。

命令/関数説明
fs_copy src, dstファイルコピー
fs_move src, dstファイル移動
fs_rename old, newファイルリネーム
fs_size(path)ファイルサイズ (バイト) を返す
fs_attr(path)ファイル属性フラグを返す
fs_is_readonly(path)読み取り専用かどうか (1/0)
fs_readtext(path)テキストファイルを一括読み込み
fs_listfiles dir, patternファイル一覧 (改行区切りで refstr)
fs_tempfile()一時ファイルパスを生成して返す

iron_path --- パス操作ユーティリティ

ソース: package/win32/common/iron_path.hsp / ヘルプ: package/hsphelp/iron_path.hs

shlwapi.dll の PathCombineW / PathFileExistsW 等を使ったパス操作関数群。 パスの結合、拡張子・ファイル名・ディレクトリ名の分解、存在確認、一時フォルダ取得を1行で実現する。全て defcfunc 関数形式。

命令/関数説明
path_combine(dir, file)パス結合
path_ext(path)拡張子を返す (".txt" 等)
path_filename(path)ファイル名部分を返す
path_dir(path)ディレクトリ部分を返す
path_stem(path)拡張子なしファイル名
path_exists(path)パスが存在するか (1/0)
path_is_relative(path)相対パスかどうか
path_temp()%TEMP% パスを返す

iron_folder --- 特殊フォルダパス取得

ソース: package/win32/common/iron_folder.hsp / ヘルプ: package/hsphelp/iron_folder.hs

SHGetFolderPathW (shell32.dll) で Windows の特殊フォルダ (デスクトップ、AppData、Documents、Program Files 等) のパスを取得する。 CSIDL 定数を内部で定義しており、それぞれに専用の短縮関数を用意。

命令/関数説明
folder_desktop()デスクトップフォルダ
folder_documents()マイドキュメント
folder_appdata()%APPDATA% (Roaming)
folder_local_appdata()%LOCALAPPDATA%
folder_profile()ユーザープロファイル
folder_programfiles()Program Files
folder_system()System32
folder_windows()Windows ディレクトリ

iron_shell --- Windows シェル操作 (ShellExecute / ゴミ箱 / .lnk)

ソース: package/win32/common/iron_shell.hsp / ヘルプ: package/hsphelp/iron_shell.hs

shell32.dll の ShellExecuteA / SHFileOperationA を使い、ファイルやURLのデフォルトアプリでの起動、 UAC 管理者昇格実行、ファイルのゴミ箱送り (FOF_ALLOWUNDO)、エクスプローラでのファイル選択表示、 IShellLink COM を使った .lnk ショートカット作成を1行で実行可能。

命令/関数説明
shell_open "path"ファイル/フォルダ/URL をデフォルトアプリで開く
shell_execute "cmd", "args"任意コマンド実行 (verb=open)
shell_runas "cmd", "args"管理者権限で実行 (UAC プロンプト)
shell_recycle "path"ファイル/フォルダをゴミ箱に送る
shell_show_in_explorer "file"エクスプローラでファイルを選択表示
shell_mklink "target", "link.lnk".lnk ショートカット作成

iron_process --- プロセス起動 + stdout キャプチャ

ソース: package/win32/common/iron_process.hsp / ヘルプ: package/hsphelp/iron_process.hs

Win32 の CreateProcessA + 匿名パイプを使い、子プロセスの stdout をキャプチャする。 CREATE_NO_WINDOW フラグ付きでコンソール非表示。終了コードも取得可能。外部ツール連携 (git, python 等) に便利。

命令/関数説明
process_exec "cmd /c dir"コマンド実行。refstr に stdout、stat に終了コード

iron_sysinfo --- OS / CPU / ユーザー情報取得

ソース: package/win32/common/iron_sysinfo.hsp / ヘルプ: package/hsphelp/iron_sysinfo.hs

GetUserNameAGetComputerNameAGetSystemInfoGetTickCount 等をラップ。 ユーザー名、コンピュータ名、CPU 論理コア数、ページサイズ、起動時間、各種ディレクトリを1命令で取得。

命令/関数説明
sys_usernameログオンユーザー名 (refstr)
sys_computernameコンピュータ名 (refstr)
sys_cpucount論理プロセッサ数 (stat)
sys_uptime起動からの経過ミリ秒 (stat)
sys_temp_path%TEMP% パス (refstr)
sys_appdata%APPDATA% パス (refstr)

iron_perf --- 高精度パフォーマンスタイマー (QPC)

ソース: package/win32/common/iron_perf.hsp / ヘルプ: package/hsphelp/iron_perf.hs

QueryPerformanceCounter / QueryPerformanceFrequency によるサブマイクロ秒精度タイマー。ベンチマーク、FPS 計測に最適。初回呼び出し時に自動初期化。

命令/関数説明
perf_startストップウォッチ開始
perf_lap開始からの経過秒 (refdval)
perf_now起動からの相対経過秒 (refdval)
perf_now_usマイクロ秒単位 (stat)

iron_clip --- クリップボード文字列の読み書き

ソース: package/win32/common/iron_clip.hsp / ヘルプ: package/hsphelp/iron_clip.hs

Win32 の OpenClipboard / GetClipboardData / SetClipboardData / GlobalAlloc を使った文字列クリップボードラッパ。HSP 標準の clipget/clipset と互換。外部 DLL 不要。

命令/関数説明
clip_set_text "..."文字列を書き込み
clip_get_text文字列を取得 (refstr, stat に文字数)
clip_clearクリップボードをクリア
clip_has_text()テキストがあるか (1/0)

iron_clipboard2 --- 高機能クリップボード (.NET 版、テキスト/画像/HTML/ファイル対応)

ソース: package/win32/common/iron_clipboard2.hsp / ヘルプ: package/hsphelp/iron_clipboard2.hs

hsp3net 専用。System.Windows.Forms.Clipboard を C# 動的コンパイルで呼び出し、テキスト/画像 (PNG/JPEG/BMP 保存)/HTML/ファイルドロップリストに対応。

命令/関数説明
clip_set_text "..."テキストを設定
clip_get_text()テキストを取得
clip_has_image()画像があるか判定
clip_save_image "out.png"画像を PNG/JPEG/BMP で保存
clip_get_files()ファイルドロップリスト取得

iron_serial --- シリアルポート (RS-232 / USB CDC) 通信

ソース: package/win32/common/iron_serial.hsp / ヘルプ: package/hsphelp/iron_serial.hs

CreateFile + SetCommState + ReadFile / WriteFile によるシリアルポート通信。Arduino やマイコンとの UART 連携に最適。ボーレート/ビット/パリティ/ストップビット指定可能。

命令/関数説明
serial_open "COM3", 115200ポートオープン
serial_write "Hello\n"文字列送信
serial_read buf, max受信 (stat にバイト数)
serial_avail受信バッファ内バイト数
serial_closeポートクローズ

iron_registry --- Windows レジストリ操作

ソース: package/win32/common/iron_registry.hsp / ヘルプ: package/hsphelp/iron_registry.hs

advapi32.dll の RegOpenKeyExW / RegQueryValueExW / RegSetValueExW を使ったレジストリ読み書き。REG_SZ (文字列) と REG_DWORD (整数) に対応。HKEY_* 定数をグローバル定義済み。

命令/関数説明
reg_read hkey, "subkey", "name", out値を読み取り
reg_write hkey, "subkey", "name", "value"文字列値を書き込み
reg_write_dword hkey, "subkey", "name", valDWORD 値を書き込み
reg_delete_value hkey, "subkey", "name"値を削除
reg_exists(hkey, "subkey", "name")値が存在するか (1/0)

iron_fwatch --- ファイル/ディレクトリ変更監視

ソース: package/win32/common/iron_fwatch.hsp / ヘルプ: package/hsphelp/iron_fwatch.hs

FindFirstChangeNotification / WaitForSingleObject でディレクトリ変更を監視。ファイル名/サイズ/書き込み/属性変更を OR フィルタで個別指定可能。サブディレクトリ再帰監視。

命令/関数説明
fwatch_start "path", FWATCH_ALL監視開始 (stat にハンドル)
fwatch_check handle変更検出 (stat=1 で変更あり)
fwatch_stop handle監視終了

iron_glob --- 再帰ファイル検索 (glob パターン)

ソース: package/win32/common/iron_glob.hsp / ヘルプ: package/hsphelp/iron_glob.hs

iron_fs を再帰的に呼び出し、ワイルドカードパターンに一致するファイルを全て列挙する。結果は改行区切りの文字列。

命令/関数説明
glob_find "dir", "*.txt", 1再帰検索 (第3引数 1=再帰, 0=非再帰)

iron_service --- Windows サービス制御

ソース: package/win32/common/iron_service.hsp / ヘルプ: package/hsphelp/iron_service.hs

Service Control Manager API でサービスの起動・停止・状態取得を行う。管理者権限が必要な場合がある。

命令/関数説明
service_start "name"サービス起動
service_stop "name"サービス停止
service_status("name")状態取得 (1=停止, 4=実行中)

iron_task --- タスクスケジューラ (schtasks ラッパー)

ソース: package/win32/common/iron_task.hsp / ヘルプ: package/hsphelp/iron_task.hs

schtasks.exe コマンドラインラッパー。タスク登録・削除・実行・照会を行う。

命令/関数説明
task_create "name", "cmd", "DAILY"タスク作成
task_delete "name"タスク削除
task_run "name"即時実行
task_query "name"タスク照会

iron_wasm --- WebAssembly ランタイム (Wasm3 embed)

ソース: package/win32/common/iron_wasm.hsp / ヘッダ: package/win32/common/hspwasm.as / ヘルプ: package/hsphelp/iron_wasm.hs

hspwasm.dll の糖衣モジュール。.wasm ファイルをロードし関数を呼び出せる。固定アリティ版 wasm_call0wasm_call8 と配列引数版 wasm_call_raw を提供。linear memory 読み書きも対応。Rust/Go/C 等で書いた .wasm をプラグインとして活用可能。

命令/関数説明
wasm_open "path.wasm".wasm ロード (stat にハンドル)
wasm_call2(h, "add", 3, 4)関数呼び出し (引数2個版)
wasm_call_raw h, "name", args, argc配列引数版 (汎用)
wasm_mem_read h, off, dst, lenlinear memory 読み取り
wasm_mem_write h, off, src, lenlinear memory 書き込み
wasm_close hハンドル解放

iron_async --- .NET 非同期タスク / C# 動的評価

ソース: package/win32/common/iron_async.hsp / ヘルプ: package/hsphelp/iron_async.hs

hsp3net 専用。CSharpCodeProvider による C# 動的コンパイル+実行 (cs_eval) と Task.Run による非同期実行 (async_run) を提供。LINQ 等の .NET 機能を HSP から直接利用可能。

命令/関数説明
cs_eval "return (1+2).ToString();"C# コード動的実行 (refstr に結果)
async_run "..."バックグラウンド非同期実行
async_is_busy()実行中かどうか (1/0)
async_result()実行結果を取得

iron_datetime --- 日付/時刻操作

ソース: package/win32/common/iron_datetime.hsp / ヘルプ: package/hsphelp/iron_datetime.hs

GetLocalTime / GetSystemTime / SystemTimeToFileTime / GetTickCount64 をラップ。ISO 8601 日時、Unix タイムスタンプ、個別取得、曜日、起動経過ミリ秒を提供。

命令/関数説明
datetime_now()"YYYY-MM-DD HH:MM:SS" 形式
date_today()"YYYY-MM-DD" 形式
datetime_unix()Unix タイムスタンプ (秒)
datetime_year() / month() / day()年/月/日を個別取得
datetime_weekday()曜日番号 (0=日)
uptime_ms()OS 起動からの経過ミリ秒

iron_stopwatch --- 高精度ストップウォッチ (QPC)

ソース: package/win32/common/iron_stopwatch.hsp / ヘルプ: package/hsphelp/iron_stopwatch.hs

QueryPerformanceCounter ベースの高精度ストップウォッチ。iron_perf よりシンプルな API。

命令/関数説明
sw_start計測開始
sw_elapsed_ms()経過ミリ秒 (double)
sw_elapsed_us()経過マイクロ秒 (double)

iron_dotenv --- .env ファイルローダー

ソース: package/win32/common/iron_dotenv.hsp / ヘルプ: package/hsphelp/iron_dotenv.hs

.env ファイル (KEY=VALUE) を読み込み SetEnvironmentVariableW で環境変数に設定。コメント (#) やクォート除去に対応。API キー管理に便利。

命令/関数説明
dotenv_load ".env".env を読み込んで環境変数に設定

iron_uuid --- UUID v4 生成

ソース: package/win32/common/iron_uuid.hsp / ヘルプ: package/hsphelp/iron_uuid.hs

rpcrt4.dll の UuidCreate で暗号論的安全な UUID v4 文字列を生成。

命令/関数説明
uuid_generate()UUID v4 文字列を返す

2. AI / 機械学習

クラウド AI API 連携からオンデバイス推論まで、幅広い AI/ML 機能を提供します。

iron_ai --- OpenAI 互換 Chat API クライアント

ソース: package/win32/common/iron_ai.hsp / ヘルプ: package/hsphelp/iron_ai.hs

OpenAI / Anthropic / Ollama / LM Studio / llama.cpp server / Groq / DeepSeek / xAI など、OpenAI 互換の /chat/completions エンドポイントを提供する任意のサーバを1行で叩ける薄いラッパ。iron_http + iron_json に依存。 マルチターン会話履歴、SSE ストリーミング、hspllama.dll 経由のローカル GGUF モデル推論にも対応。

命令/関数説明
iron_ai_set_endpoint "url"API エンドポイント設定
iron_ai_set_key "sk-..."API キー設定
iron_ai_set_model "gpt-4o-mini"モデル名設定
iron_ai_set_system "..."システムプロンプト設定
iron_ai_chat "msg", reply同期チャット問い合わせ
iron_ai_chat_stream_start "..."SSE ストリーミング開始
iron_ai_chat_stream_poll delta, doneストリーミング差分取得
iron_ai_history_clear会話履歴クリア
iron_ai_history_add "role", "text"会話履歴に追加

iron_speech --- 音声認識統一 API (5 バックエンド切替)

ソース: package/win32/common/iron_speech.hsp / ヘルプ: package/hsphelp/iron_speech.hs

Cloud Whisper API / whisper.cpp (hspwhisper.dll) / Vosk (hspvosk.dll) / Windows SAPI 5 (hspsapi.dll) / WinRT Speech (hspwinrtspeech.dll) の5種類の音声認識バックエンドを統一 API で扱えるラッパ。バックエンドを定数で切り替えるだけで同じ API で利用可能。

命令/関数説明
iron_speech_set_backend SPEECH_BACKEND_WHISPERバックエンド選択
iron_speech_set_model "ggml-base.bin"モデル指定
iron_speech_set_language "ja"言語ヒント
iron_speech_open初期化
iron_speech_transcribe "voice.wav", text音声ファイルを文字起こし
iron_speech_closeリソース解放

iron_mcp_client --- Model Context Protocol クライアント (stdio + HTTP)

ソース: package/win32/common/iron_mcp_client.hsp / ヘッダ: package/win32/common/hspmcp.as / ヘルプ: package/hsphelp/iron_mcp_client.hs

Anthropic 製 MCP サーバを HSP から叩くクライアント。stdio (子プロセス pipe) と HTTP の両方をサポート。hspmcp.dll + iron_http + iron_json に依存。JSON-RPC でツール一覧取得と呼び出しが可能。

命令/関数説明
iron_mcp_open_stdio "npx ...", ""stdio トランスポートで接続
iron_mcp_open_http "url"HTTP トランスポートで接続
iron_mcp_initializeMCP ハンドシェイク
iron_mcp_call "tool", "{...}", resultツール呼び出し
iron_mcp_tools_count()ツール数取得
iron_mcp_close切断

iron_mcp_server --- HSP3CL を MCP stdio server 化

ソース: package/win32/common/iron_mcp_server.hsp / ヘルプ: package/hsphelp/iron_mcp_server.hs

HSP の関数を MCP の "tool" として公開し、Claude Desktop や VS Code 等の MCP 対応クライアントから呼び出してもらう server-side ラッパ。hsp3cl.exe で起動し stdin/stdout で JSON-RPC 通信。最大 64 ツール登録可能。

命令/関数説明
iron_mcp_server_tool "name", "desc", *handlerツール登録
iron_mcp_server_runメインループ開始
iron_mcp_arg_str "key", varハンドラ内で引数取得
iron_mcp_set_result "text"ハンドラ内で結果設定

iron_embedding --- テキスト埋め込み + ベクトル検索

ソース: package/win32/common/iron_embedding.hsp / ヘルプ: package/hsphelp/iron_embedding.hs

簡易 TF-IDF ベースのテキスト埋め込みとコサイン類似度によるベクトル検索。外部 API 不要の Pure HSP 実装。

命令/関数説明
embedding_build_vocab corpus語彙構築
vec_cosine(a, b, n)コサイン類似度計算

iron_sentiment --- 簡易感情分析 (キーワードベース)

ソース: package/win32/common/iron_sentiment.hsp / ヘルプ: package/hsphelp/iron_sentiment.hs

テキストに含まれるポジティブ/ネガティブキーワード (good, great, excellent, bad, terrible 等) を検出し、合計スコアで感情を判定する Pure HSP 実装。ML モデル不要で手軽に使える。

命令/関数説明
sentiment_score(text)感情スコアを返す (正=ポジティブ、負=ネガティブ、0=中立)
sentiment_label(text)"positive" / "negative" / "neutral" の文字列ラベルを返す

iron_summarize --- 抽出型テキスト要約

ソース: package/win32/common/iron_summarize.hsp / ヘルプ: package/hsphelp/iron_summarize.hs

テキストを改行で文に分割し、文の長さをヒューリスティックな重要度指標として上位 N 文を抽出する。Pure HSP 実装で外部依存なし。

命令/関数説明
summarize(text, max_sentences)text から最大 max_sentences 文を抽出して要約結果を返す

iron_kmeans --- K-means クラスタリング

ソース: package/win32/common/iron_kmeans.hsp / ヘルプ: package/hsphelp/iron_kmeans.hs

2D ポイントデータを K 個のクラスタに分類する K-means 法の Pure HSP 実装。重心を最大 20 回反復更新する。出力の labels 配列に各ポイントの所属クラスタ番号が格納される。

命令/関数説明
kmeans_cluster x, y, n, k, labels2D K-means クラスタリング (x,y: double 配列, n: 点数, k: クラスタ数)

iron_nn --- シンプルニューラルネットワーク (1 隠れ層)

ソース: package/win32/common/iron_nn.hsp / ヘルプ: package/hsphelp/iron_nn.hs

単純パーセプトロン (sigmoid 活性化) と XOR 学習デモを提供する教育用ニューラルネットワーク。Pure HSP 実装。勾配降下法 (簡易版) で重みを更新する。

命令/関数説明
nn_sigmoid(x)シグモイド関数
nn_predict(x1, x2, w1, w2, bias)2入力パーセプトロン推論
nn_train_xor weights, epochsXOR パターンの学習 (weights 配列に w1, w2, bias を出力)

iron_ga --- 遺伝的アルゴリズム

ソース: package/win32/common/iron_ga.hsp / ヘルプ: package/hsphelp/iron_ga.hs

トーナメント選択 + 交叉 (平均) + 突然変異 (5% 確率) による遺伝的アルゴリズム。整数遺伝子を持つ個体群を世代交代させ、適応度関数の最大化を図る。Pure HSP 実装。

命令/関数説明
ga_init pop_size, gene_max初期集団を生成 (pop_size 個体、遺伝子 0〜gene_max)
ga_evaluate fitness_arr外部で計算した適応度配列を設定
ga_evolve1 世代進化 (選択 + 交叉 + 突然変異)
ga_best()最高適応度の個体の遺伝子値を返す
ga_get(index)index 番目の個体の遺伝子値を返す

iron_onnx --- ONNX Runtime 推論 (DirectML GPU 対応)

ソース: package/win32/common/iron_onnx.hsp / ヘッダ: package/win32/common/hsponnx.as / ヘルプ: package/hsphelp/iron_onnx.hs

hsponnx.dll の糖衣モジュール。.onnx モデルをロードし float32 バッファで入出力して推論。DirectML バックエンドで GPU 推論も可能。入出力テンソルのメタ情報 (名前/shape/rank) 取得にも対応。

命令/関数説明
iron_onnx_open "model.onnx"モデルロード (stat にハンドル)
iron_onnx_input_info h, idx, name, shape, rank入力テンソル情報
onnx_run h, in, in_shp, rank, out, out_shp, out_rank推論実行
iron_onnx_use_dml hDirectML GPU に切替
iron_onnx_close hセッション解放

iron_tflite --- TensorFlow Lite 推論エンジン

ソース: package/win32/common/iron_tflite.hsp / ヘッダ: package/win32/common/hsptflite.as / ヘルプ: package/hsphelp/iron_tflite.hs

hsptflite.dll の糖衣モジュール。任意の .tflite モデルをロードし、入出力テンソルの shape/rank/type を取得した上で float32 バイナリバッファで入出力して推論を行う汎用 TFLite ランタイム。

命令/関数説明
iron_tflite_open "model.tflite"モデルロード (stat にハンドル)
iron_tflite_input_info h, idx, shape, rank, type入力テンソル情報取得
iron_tflite_output_info h, idx, shape, rank, type出力テンソル情報取得
tflite_set_input h, 0, buf, len入力データ設定
tflite_invoke h推論実行
tflite_get_output h, 0, buf, len出力データ取得
iron_tflite_close hモデル解放

iron_mediapipe --- MediaPipe 手検出 / 姿勢推定

ソース: package/win32/common/iron_mediapipe.hsp / ヘルプ: package/hsphelp/iron_mediapipe.hs

hsptflite.dll をバックエンドに、MediaPipe の palm_detector + hand_landmarker 2段パイプラインによる手検出を提供。RGB バッファを渡すだけで手の位置 (バウンディングボックス)、信頼度スコア、21 キーポイント座標を取得可能。最大 16 手同時検出対応。

命令/関数説明
mp_hand_init "det.tflite", "lm.tflite"手検出初期化 (2 モデル)
mp_hand_run rgb_buf, w, h手検出実行 (stat に検出数)
mp_hand_bbox idx, x, y, w, hバウンディングボックス取得
mp_hand_score idx, score信頼度スコア取得
mp_hand_landmark_pt hand, pt, x, y21 キーポイント座標取得
mp_hand_closeリソース解放

音声認識バックエンド比較

バックエンド定数入力品質言語必要なもの
Cloud Whisper APISPEECH_BACKEND_CLOUDファイル最高99 言語API キー
whisper.cppSPEECH_BACKEND_WHISPERファイル最高99 言語GGML model (75 MB〜)
Vosk (Kaldi)SPEECH_BACKEND_VOSKファイル24+ 言語Vosk model (47 MB〜)
Windows SAPI 5SPEECH_BACKEND_SAPIファイルOS 依存Windows 言語パック
WinRT SpeechSPEECH_BACKEND_WINRTマイクOS 依存同上

3. マルチメディア

動画再生、Webcam、録音、FFmpeg 連携、音声合成など、メディア処理に関するモジュール群です。

iron_video --- Media Foundation (MFPlay) 動画/音声再生

ソース: package/win32/common/iron_video.hsp / ヘルプ: package/hsphelp/iron_video.hs

Windows 7 以降の Media Foundation MFPlay (IMFPMediaPlayer) を HSP の #comfunc で直接叩く動画・音声再生モジュール。MP4/MKV/H.264/AAC/MP3 等の現代フォーマットが標準で再生可能。速度変更、音量制御、フレームステップ、シーク対応。

命令/関数説明
iron_video_open "movie.mp4", hwndファイルを開いて hwnd に貼り付け
iron_video_play / pause / stop再生制御
iron_video_step1フレーム進める
iron_video_set_rate 2.0再生速度変更
iron_video_set_volume 0.5音量 (0.0〜1.0)
iron_video_close解放

iron_camera --- Webcam プレビュー (OpenCV / hspcv4 backend)

ソース: package/win32/common/iron_camera.hsp / ヘルプ: package/hsphelp/iron_camera.hs

hspcv4 の VideoCapture を薄くラップし、Webcam から1フレーム取得して HSP ウィンドウに描画を1行で実現。

命令/関数説明
iron_camera_open 0カメラ開く (デバイスインデックス)
iron_camera_read1フレーム取得
iron_camera_draw x, yHSP ウィンドウに描画
iron_camera_save "file.png"現在フレームを保存
iron_camera_closeカメラを閉じる

iron_camera_mf --- Webcam + 録画 + マイク録音 (Pure Media Foundation)

ソース: package/win32/common/iron_camera_mf.hsp / ヘッダ: package/win32/common/hspmfcam.as / ヘルプ: package/hsphelp/iron_camera_mf.hs

hspmfcam.dll (68 関数) を使った高機能 Webcam モジュール。最大256デバイス並列対応。映像+音声同時録画 (H.264/AAC → MP4)、マイク録音 (WAV)、プロパティ制御 (露出/ホワイトバランス等17項目)、解像度一覧/フォーマット列挙に対応。OpenCV 不要。

命令/関数説明
iron_cam_open(0, 0, 0, 800, 600)カメラ開く (hwnd, x, y, w, h)
iron_cam_record_av h, "out.mp4", ...映像+音声同時録画開始
iron_cam_save h, "shot.png"スナップショット保存
iron_mic_open(0, 16000, 1, 16)マイクオープン (デバイス, Hz, ch, bits)
iron_mic_save_wav hmic, "voice.wav"WAV 録音開始
iron_cam_close hカメラ閉じる

iron_capture --- DXGI Desktop Duplication 画面キャプチャ

ソース: package/win32/common/iron_capture.hsp / ヘルプ: package/hsphelp/iron_capture.hs

hspcapture.dll を使用。DXGI Desktop Duplication API (Windows 8+) でデスクトップ画面を BMP 保存。

命令/関数説明
capture_init初期化
capture_save "screenshot.bmp"スクリーンショット BMP 保存
capture_bye終了処理

iron_wgcapture --- Windows.Graphics.Capture スクリーン/ウィンドウキャプチャ

ソース: package/win32/common/iron_wgcapture.hsp / ヘッダ: package/win32/common/hspwgcapture.as / ヘルプ: package/hsphelp/iron_wgcapture.hs

Windows 10 1903+ の WinRT Graphics Capture API。デスクトップ全体、指定モニタ、任意ウィンドウを高速キャプチャ。BGRA バイト列取得や PNG 1ショット保存に対応。

命令/関数説明
iron_wgc_init初期化
iron_wgc_start_window hwndウィンドウキャプチャ開始
iron_wgc_save_png h, "out.png"PNG 保存
iron_wgc_grab h, buf, w, hBGRA バッファ取得

iron_audioloop --- WASAPI 音声ループバック録音

ソース: package/win32/common/iron_audioloop.hsp / ヘルプ: package/hsphelp/iron_audioloop.hs

hspaudioloop.dll で PC の再生音を WASAPI ループバックモードで WAV 録音。ステレオミックス設定不要。

命令/関数説明
audioloop_start "record.wav"録音開始
audioloop_pollデータ取得 (定期呼び出し)
audioloop_stop録音停止 + WAV 完成

iron_ffmpeg --- FFmpeg ラッパー (外部プロセス呼び出し)

ソース: package/win32/common/iron_ffmpeg.hsp / ヘルプ: package/hsphelp/iron_ffmpeg.hs

PATH または指定パスの ffmpeg.exe を iron_process 経由で呼び出す。変換、音声抽出、トリミング、連結、サムネイル生成、メディア情報取得に対応。

命令/関数説明
ffmpeg_convert "in.avi", "out.mp4"フォーマット変換
ffmpeg_extract_audio "v.mp4", "a.wav"音声抽出
ffmpeg_trim "in", "out", "00:01:00", "30"トリミング
ffmpeg_thumbnail "v.mp4", "thumb.jpg", "5"サムネイル生成

iron_synth --- オーディオ合成 WAV 生成

ソース: package/win32/common/iron_synth.hsp / ヘルプ: package/hsphelp/iron_synth.hs

指定した周波数・秒数・サンプルレートで WAV ファイルを直接生成する Pure HSP 実装。正弦波 (sine)、矩形波 (square)、ホワイトノイズに対応。WAV ヘッダを手動構築し bsave で書き出す。効果音やテスト信号の生成に使える。

命令/関数説明
synth_sine "out.wav", 440.0, 1.0, 44100正弦波 WAV 生成 (周波数, 秒数, サンプルレート)
synth_square "out.wav", 440.0, 1.0, 44100矩形波 WAV 生成
synth_noise "out.wav", 1.0, 44100ホワイトノイズ WAV 生成

iron_spectrum --- スペクトラム解析 (簡易 DFT)

ソース: package/win32/common/iron_spectrum.hsp / ヘルプ: package/hsphelp/iron_spectrum.hs

16bit PCM サンプル配列に対して離散フーリエ変換 (DFT) を行い、周波数ごとの振幅スペクトラムを計算する。オーディオ可視化やスペクトログラム表示に使用。Pure HSP 実装。

命令/関数説明
spectrum_compute samples, n, bins, num_binsDFT スペクトラム計算 (samples: int 配列, bins: double 出力配列)

iron_midi --- MIDI 入出力 (GM 音色再生 / リアルタイム受信)

ソース: package/win32/common/iron_midi.hsp / ヘッダ: package/win32/common/hspmidi.as / ヘルプ: package/hsphelp/iron_midi.hs

hspmidi.dll (winmm ベース) のラッパ。MIDI 出力 (GM 音色再生、ノートオン/オフ、プログラムチェンジ) と MIDI 入力 (リアルタイムポーリング受信) に対応。音名文字列 ("C4", "C#4" 等) からノート番号への変換ユーティリティも提供。

命令/関数説明
midi_out_open devidMIDI 出力デバイスを開く
midi_out_note_on ch, note, velノートオン
midi_out_note_off ch, note, velノートオフ
midi_out_program_change ch, program音色切替 (GM プログラム番号)
note_name("C4")音名文字列からノート番号に変換 (#/b 対応)
midi_in_open devid / midi_in_pollMIDI 入力 (ポーリング式)
midi_out_closeデバイスを閉じる

iron_exif --- EXIF メタデータ読み取り

ソース: package/win32/common/iron_exif.hsp / ヘルプ: package/hsphelp/iron_exif.hs

GDI+ の PropertyItem API を使って JPEG/TIFF 画像の EXIF メタデータを読み取る。カメラメーカー、モデル名、撮影日時、露出時間、F 値、ISO 感度、GPS 緯度/経度など主要タグ ID を定数として定義済み。外部 DLL 不要 (gdiplus.dll は Windows 標準)。

命令/関数説明
exif_open "photo.jpg"画像を開く (stat=0 で成功)
exif_get_str EXIF_MODEL文字列タグ取得 (refstr)
exif_get_int EXIF_ISO整数タグ取得 (stat)
exif_get_rational EXIF_FNUMBER有理数タグ取得 (refdval)
exif_count()プロパティ数
exif_close画像を閉じる

iron_ruffle --- Flash SWF 再生 (Ruffle + WebView2)

ソース: package/win32/common/iron_ruffle.hsp / ヘルプ: package/hsphelp/iron_ruffle.hs

WebView2 上で Ruffle (Rust 製 Flash Player エミュレータ) の self-hosted JS をロードし、任意の .swf ファイルを再生する。Ruffle のビルドファイル一式 (ruffle.js + .wasm) を実行ファイルと同じディレクトリの ruffle/ 以下に配置して使用。AS3 完全サポートではないが古典 SWF の再生に対応。

命令/関数説明
ruffle_init hwnd, x, y, w, hWebView2 + Ruffle 初期化 (stat に wv_id)
ruffle_load wv_id, "movie.swf"SWF ファイルの読み込み・再生
ruffle_close wv_id再生終了・リソース解放

4. ネットワーク / Web

HTTP / FTP / SMTP / SSH / OAuth / BLE など、通信プロトコル全般をカバーします。

iron_http --- WinHTTP クライアント (GET/POST/SSE/TLS)

ソース: package/win32/common/iron_http.hsp / ヘルプ: package/hsphelp/iron_http.hs

Win32 WinHTTP API を直接呼ぶ HTTP クライアント。.NET 不要。HTTPS は自動 TLS ハンドシェイク (システム証明書ストア使用)。 リダイレクト自動追尾、カスタムヘッダ、SSE ストリーミング、タイムアウト制御に対応。User-Agent は "IronHSP/1.0"。

命令/関数説明
http_get url, bodyGET リクエスト (body に本文、stat に HTTP ステータス)
http_post url, send, body, "application/json"POST リクエスト
http_set_header "Authorization: Bearer ..."カスタムヘッダ設定
http_set_timeout 60タイムアウト秒設定
http_stream_open url, body, ctypeSSE ストリーミング開始
http_stream_read buf, maxストリーム差分読み取り

iron_webserver --- HTTP/HTTPS/WebSocket サーバ (HTTP.sys)

ソース: package/win32/common/iron_webserver.hsp / ヘルプ: package/hsphelp/iron_webserver.hs

hspwebsrv.dll (HTTP.sys kernel-mode backend) で高性能な localhost HTTP/HTTPS/WebSocket サーバを提供。WebSocket の handshake + フレームパーサも内包。HTTPS は netsh ssl cert binding が必要。

命令/関数説明
web_open 8080HTTP サーバ開始
web_accept method, path, body, is_ws, timeoutリクエスト受信
web_respond 200, "text/html", "body"レスポンス送信
ws = web_accept_ws()WebSocket upgrade 受諾
web_ws_send ws, "text"WebSocket 送信
web_closeサーバ停止

iron_ftp --- FTP クライアント (WinINet API)

ソース: package/win32/common/iron_ftp.hsp / ヘルプ: package/hsphelp/iron_ftp.hs

WinINet API (wininet.dll) で FTP 接続/転送。パッシブモード対応。Unicode (W系API) 使用。

命令/関数説明
ftp_connect "host", "user", "pass"FTP 接続
ftp_upload "local", "remote"アップロード
ftp_download "remote", "local"ダウンロード
ftp_list "*.txt"ファイル一覧 (refstr)
ftp_disconnect切断

iron_smtp --- SMTP メール送信

ソース: package/win32/common/iron_smtp.hsp / ヘルプ: package/hsphelp/iron_smtp.hs

hspsmtp.dll (Winsock2) による SMTP 送信。AUTH LOGIN 認証対応。宛先は ";" 区切りで複数指定可能。

命令/関数説明
mail_send "host", 587, "from", "to", "subject", "body", "user", "pass"メール送信
mail_error()エラーメッセージ取得

iron_ssh --- SSH / SFTP クライアント (libssh2 + WinCNG)

ソース: package/win32/common/iron_ssh.hsp / ヘルプ: package/hsphelp/iron_ssh.hs

hspssh.dll (libssh2) で SSH 接続、リモートコマンド実行、SFTP ファイル転送を提供。

命令/関数説明
ssh_connect "host", 22, "user", "pass"SSH 接続
ssh_exec "ls -la"リモートコマンド実行 (refstr に stdout)
sftp_upload "local", "remote"SFTP アップロード
sftp_download "remote", "local"SFTP ダウンロード
ssh_disconnect切断

iron_oauth --- OAuth 2.0 Authorization Code Flow (PKCE)

ソース: package/win32/common/iron_oauth.hsp / ヘルプ: package/hsphelp/iron_oauth.hs

ws2_32 (Winsock) で localhost TCP リスナーを立て、ブラウザ認証後のリダイレクトコードを自動受信。Google / GitHub 等の認証フローに対応。

命令/関数説明
oauth_start_listener 8080TCP リスナー開始
oauth_wait_code 30コード受信待ち (秒)
oauth_token "url", "client_id", code, "redirect"トークン交換

iron_scraper / iron_ble / iron_netinfo --- その他ネットワーク

ソース: package/win32/common/iron_scraper.hsp

iron_scraper: iron_http + iron_html でリンクやテキストを抽出する Web スクレイピング。 iron_ble: hspble.dll で BLE GATT セントラル。スキャン、接続、サービス列挙、値の読み書き、Notify 購読。UUID 128bit 形式。 iron_netinfo: InternetGetConnectedState + Winsock でインターネット接続確認、IP アドレス取得、ホスト名取得。

命令/関数説明
scrape_links "url"ページ内リンク抽出
iron_ble_scan_start / iron_ble_connect "MAC"BLE スキャン+接続
netinfo_connected()インターネット接続確認
netinfo_ip()プライマリ IP アドレス

5. データ / ファイル

JSON / CSV / YAML / XML / DB / PDF / アーカイブなど、データの読み書きとストレージに関するモジュール群です。

iron_json --- JSON パース/ビルド (hspjson.dll)

ソース: package/win32/common/iron_json.hsp / ヘッダ: package/win32/common/hspjson.as / ヘルプ: package/hsphelp/iron_json.hs

hspjson.dll (依存ゼロ、約300KB) の糖衣ラッパ。JSON テキストをパースしてハンドル経由で値を取得。JSONPath 風のドット/ブラケット記法でネスト値にアクセス。整形/minify 出力にも対応。

命令/関数説明
hid = json_load("{...}")JSON パース (ハンドル返却)
json_str(hid, "name")文字列値取得
json_int(hid, "age")整数値取得
json_dbl(hid, "score")実数値取得
json_len(hid, "tags")配列/オブジェクト要素数
json_pretty(hid)整形 JSON 文字列
json_release hid個別解放

iron_csv --- RFC 4180 準拠 CSV パーサ/ビルダ

ソース: package/win32/common/iron_csv.hsp / ヘルプ: package/hsphelp/iron_csv.hs

Pure HSP 実装。ダブルクォート/改行/カンマ含むフィールド、"" エスケープに完全対応。デリミタ変更で TSV にも切替可能。ファイル読み込み + セル取得 + 1行ずつの組み立て + ファイル書き出しの一連の API を提供。

命令/関数説明
csv_load data, rows, cols, "file.csv"CSV ファイル読み込み
csv_cell(data, row, col, cols)セル値取得
csv_row_begin / csv_row_add "val" / csv_row_end buf行組み立て
csv_write "out.csv", bufファイル書き出し

iron_db --- SQLite 3.46 組み込みデータベース

ソース: package/win32/common/iron_db.hsp / ヘッダ: package/win32/common/hspdb.as / ヘルプ: package/hsphelp/iron_db.hs

hspdb.dll (SQLite 3.46.1 amalgamation 埋め込み) のラッパ。最大 32 DB / 64 クエリ同時オープン。CREATE/INSERT/UPDATE/DELETE の実行、SELECT のステップ実行 (行フェッチ)、列値取得 (TEXT/INT/DOUBLE)、最終 ROWID、変更行数に対応。

命令/関数説明
h = db_open("test.db")DB オープン
db_exec h, "CREATE TABLE ..."SQL 実行
qh = db_query(h, "SELECT ...")クエリ準備
db_step qh行フェッチ (stat=0 で終端)
db_col_text qh, 0, name列値 (TEXT) 取得
db_col_int(qh, 1)列値 (INT) 取得
db_query_close qh / db_close h解放

iron_duckdb --- DuckDB 組み込み分析 DB

ソース: package/win32/common/iron_duckdb.hsp / ヘッダ: package/win32/common/hspduckdb.as / ヘルプ: package/hsphelp/iron_duckdb.hs

hspduckdb.dll のラッパ。CSV/Parquet を SQL で直接クエリ可能。インメモリ/ファイル DB 対応。集計・結合・ウィンドウ関数など分析 SQL 完全対応。

命令/関数説明
db_open ":memory:"インメモリ DB オープン
db_query h, "SELECT * FROM 'data.csv'", rhCSV 直接クエリ
db_fetch_str(rh, row, col)結果取得 (文字列)
db_rows(rh) / db_cols(rh)行数/列数
db_free rh / db_close h解放

iron_7z --- 40+ アーカイブ形式の圧縮・展開 (7-Zip)

ソース: package/win32/common/iron_7z.hsp / ヘルプ: package/hsphelp/iron_7z.hs

hsp7z.dll + 7za.exe で 7z/zip/tar/gz/bz2/xz/rar(読みのみ)/wim/iso 等 40+ フォーマットに対応。出力拡張子で形式が自動判別される。

命令/関数説明
iron_7z_add "out.7z", "dir\\"アーカイブ作成/追加
iron_7z_extract "a.tar.gz", "out\\"全展開
iron_7z_list "backup.7z", names, sizes一覧取得 (stat に件数)
iron_7z_test "archive.7z"整合性テスト

iron_xlsx --- Excel .xlsx 読み書き (OpenXML + hsp7z)

ソース: package/win32/common/iron_xlsx.hsp / ヘルプ: package/hsphelp/iron_xlsx.hs

.xlsx (ZIP + XML) を hsp7z で展開して XML を解析しセル値を取得。新規作成+セル書き込み+保存も可能。Excel インストール不要。

命令/関数説明
xlsx_open "file.xlsx"ブック開く (stat にハンドル)
xlsx_cell_str h, sheet, row, col, valセル値取得 (1-origin)
xlsx_used_range h, sheet, rows, cols使用範囲取得
xlsx_new h / xlsx_set_cell h, 0, 1, 1, "Hello"新規作成+書き込み
xlsx_save h, "out.xlsx"保存

iron_pdf --- PDF テキスト抽出 + レンダリング (PDFium)

ソース: package/win32/common/iron_pdf.hsp / ヘッダ: package/win32/common/hsppdf.as / ヘルプ: package/hsphelp/iron_pdf.hs

hsppdf.dll (PDFium) のラッパ。PDF からテキスト抽出、任意倍率でビットマップレンダリング、メタデータ (タイトル/著者) 取得。パスワード付き PDF にも対応。

命令/関数説明
pdf_begin / pdf_endPDFium 初期化/終了
pdf_open "file.pdf"PDF 開く (stat にハンドル)
pdf_pages(h)ページ数
pdf_text h, pageテキスト抽出 (refstr)
pdf_draw h, page, scale画面描画
pdf_render h, page, 2.0, buf, w, hBGRA バッファ取得

iron_yaml --- 簡易 YAML パーサー

ソース: package/win32/common/iron_yaml.hsp / ヘルプ: package/hsphelp/iron_yaml.hs

key: value 形式のフラットな YAML テキストをパースする。コメント (#) 対応。ネスト構造には非対応だが、設定ファイルの読み込みには十分。Pure HSP 実装。

命令/関数説明
yaml_load textYAML テキストをパース (stat にエントリ数)
yaml_get("key")キーに対応する値を返す (未発見時は "")
yaml_count()パースしたエントリ数を返す

iron_xml --- XML 読み書き (MSXML DOM)

ソース: package/win32/common/iron_xml.hsp / ヘルプ: package/hsphelp/iron_xml.hs

MSXML2.DOMDocument.6.0 COM オブジェクトを経由して XML ファイルまたは XML 文字列をパースする。hsp3net 専用 (newcom 使用)。

命令/関数説明
xml_load "file.xml"XML ファイルを読み込み
xml_loadstr xmlstrXML 文字列をパース

iron_collection --- スタック / キュー データ構造

ソース: package/win32/common/iron_collection.hsp / ヘルプ: package/hsphelp/iron_collection.hs

整数型のスタック (LIFO) とキュー (FIFO) を提供する Pure HSP 実装。内部配列は最大 256 要素。

命令/関数説明
stack_push valスタックに値をプッシュ
stack_pop()スタックから値をポップ
stack_peek()先頭を覗く (取り出さない)
stack_size()要素数
queue_push valキューに値を追加
queue_pop()キューから値を取り出し
queue_size()要素数

iron_bloom --- ブルームフィルタ (確率的メンバーシップ判定)

ソース: package/win32/common/iron_bloom.hsp / ヘルプ: package/hsphelp/iron_bloom.hs

2 つの独立したハッシュ関数 (DJB2 系) でビットアレイを操作するブルームフィルタ。「含まれない」は確実だが「含まれる」は偽陽性の可能性がある確率的データ構造。Pure HSP 実装。

命令/関数説明
bloom_init sizeビットサイズを指定して初期化 (デフォルト 8192)
bloom_add "item"要素を追加
bloom_contains("item")メンバーシップ判定 (1=含まれうる, 0=含まれない)

iron_cache --- TTL 付きインメモリキャッシュ

ソース: package/win32/common/iron_cache.hsp / ヘルプ: package/hsphelp/iron_cache.hs

キーと値のペアを TTL (有効期限秒) 付きでメモリに保存する。期限切れのエントリは取得時に自動的に空文字列を返す。最大 100 エントリ。Pure HSP 実装。

命令/関数説明
cache_set "key", "value", 60値を設定 (60 秒の TTL)
cache_get("key")値を取得 (期限切れ時は "")
cache_has("key")有効なエントリが存在するか (1/0)
cache_clear全エントリ削除

6. 数学 / 科学計算

FFT、複素数、幾何学、統計、最適化など、科学計算に必要な数学関数群です。全て Pure HSP 実装です。

iron_stat --- 統計関数

ソース: package/win32/common/iron_stat.hsp / ヘルプ: package/hsphelp/iron_stat.hs

平均、中央値、分散、標準偏差、パーセンタイル、最小/最大、記述統計 (stat_describe) を提供する Pure HSP 統計関数群。

命令/関数説明
stat_mean(arr, n)算術平均
stat_median(arr, n)中央値
stat_stddev(arr, n)標準偏差
stat_describe arr, n記述統計一括出力

iron_fft --- 高速フーリエ変換 (Cooley-Tukey)

ソース: package/win32/common/iron_fft.hsp / ヘルプ: package/hsphelp/iron_fft.hs

Cooley-Tukey アルゴリズムによるインプレース FFT。ビット反転置換 + バタフライ演算。入力は実数部 (re) と虚数部 (im) の double 配列で、サイズは 2 のべき乗。Pure HSP 実装。

命令/関数説明
fft_compute re, im, nインプレース FFT (re, im が変換結果で上書きされる)

iron_complex --- 複素数演算

ソース: package/win32/common/iron_complex.hsp / ヘルプ: package/hsphelp/iron_complex.hs

複素数を (re, im) の double 配列 [2] で表現し、加減乗除、絶対値、偏角を計算する。Pure HSP 実装。

命令/関数説明
complex_add a, b, c加算 c = a + b
complex_sub a, b, c減算 c = a - b
complex_mul a, b, c乗算 c = a * b
complex_div a, b, c除算 c = a / b
complex_abs(a)絶対値 |a|
complex_arg(a)偏角 (ラジアン)

iron_matrix --- 行列演算

ソース: package/win32/common/iron_matrix.hsp / ヘルプ: package/hsphelp/iron_matrix.hs

n x n 行列 (double 配列, 最大 4x4) の積、転置、行列式 (2x2, 3x3)、単位行列生成、ベクトル内積・外積 (3D) を提供する Pure HSP 実装。3D グラフィックスやゲームの座標変換に使える。

命令/関数説明
mat_mul A, B, C, n行列積 C = A * B (n x n)
mat_transpose A, B, n転置 B = A^T
mat_identity M, n単位行列生成
mat_det2(A) / mat_det3(A)行列式 (2x2 / 3x3)
vec_dot(A, B, n)ベクトル内積
vec_cross A, B, Cベクトル外積 (3D)

iron_geometry --- 2D/3D 幾何学計算

ソース: package/win32/common/iron_geometry.hsp / ヘルプ: package/hsphelp/iron_geometry.hs

三角形面積、点と直線の距離、円の面積/周囲長、多角形面積 (Shoelace 公式)、球の体積/表面積を計算する Pure HSP 幾何学関数群。

命令/関数説明
tri_area(x1,y1,x2,y2,x3,y3)三角形面積
point_line_dist(px,py,x1,y1,x2,y2)点と直線の距離
circle_area(r)円の面積
polygon_area(x, y, n)多角形面積 (Shoelace 公式)
sphere_volume(r)球の体積
sphere_surface(r)球の表面積

iron_quaternion --- クォータニオン (3D 回転)

ソース: package/win32/common/iron_quaternion.hsp / ヘルプ: package/hsphelp/iron_quaternion.hs

クォータニオン q = (w, x, y, z) を double 配列 [4] で表現し、単位クォータニオン生成、軸角度からの変換、乗算、正規化、3D 点の回転を提供。ジンバルロックのない 3D 回転に使用。Pure HSP 実装。

命令/関数説明
quat_identity q単位クォータニオン (1, 0, 0, 0) を設定
quat_from_axis_angle q, ax, ay, az, angle軸角度からクォータニオンを生成
quat_mul a, b, c乗算 c = a * b
quat_normalize q正規化
quat_rotate q, px, py, pz3D 点を回転

iron_graph --- グラフ探索 (BFS / ダイクストラ最短経路)

ソース: package/win32/common/iron_graph.hsp / ヘルプ: package/hsphelp/iron_graph.hs

隣接行列ベースのグラフ探索アルゴリズム。幅優先探索 (BFS) と重み付きダイクストラ最短経路を提供する。Pure HSP 実装。

命令/関数説明
graph_bfs adj, start, n, distBFS (dist 配列に各ノードまでの距離)
graph_dijkstra weight, start, n, distダイクストラ (dist 配列に最短距離)

iron_ode --- 常微分方程式ソルバー (Runge-Kutta 4 次)

ソース: package/win32/common/iron_ode.hsp / ヘルプ: package/hsphelp/iron_ode.hs

4 次ルンゲ・クッタ法 (RK4) による常微分方程式の数値解法。組み込みの指数減衰 (dy/dt = -y) ソルバーを提供。結果は t_out, y_out の double 配列に格納。Pure HSP 実装。

命令/関数説明
ode_solve_decay t_out, y_out, steps, t0, y0, dt指数減衰を RK4 で解く

iron_optimize --- 最適化 (黄金分割法)

ソース: package/win32/common/iron_optimize.hsp / ヘルプ: package/hsphelp/iron_optimize.hs

黄金分割探索 (Golden Section Search) で区間 [a, b] における関数の最小値を見つける。内蔵例は f(x) = x^2 - 4x + 4 (最小値 x=2)。Pure HSP 実装。

命令/関数説明
optimize_golden(a, b, max_iter)黄金分割法で最小値の x を返す

iron_curvefit --- カーブフィッティング (最小二乗法)

ソース: package/win32/common/iron_curvefit.hsp / ヘルプ: package/hsphelp/iron_curvefit.hs

データ点列 (x, y) に対する線形最小二乗法フィッティング (y = slope * x + intercept) と決定係数 R^2 の計算。Pure HSP 実装。

命令/関数説明
curvefit_linear x, y, n, slope, intercept線形フィット (slope, intercept を出力)
curvefit_r2(x, y, n, slope, intercept)決定係数 R^2 を返す

iron_random_dist --- 確率分布乱数生成

ソース: package/win32/common/iron_random_dist.hsp / ヘルプ: package/hsphelp/iron_random_dist.hs

Box-Muller 変換による正規分布乱数、指数分布、ポアソン分布、一様実数分布を生成する。Pure HSP 実装。

命令/関数説明
rand_normal(mean, stddev)正規分布乱数
rand_exponential(lambda)指数分布乱数
rand_poisson(lambda)ポアソン分布乱数
rand_uniform(min, max)一様実数分布乱数

iron_combinatorics --- 組み合わせ論

ソース: package/win32/common/iron_combinatorics.hsp / ヘルプ: package/hsphelp/iron_combinatorics.hs

階乗、順列、組み合わせ、最大公約数 (GCD)、最小公倍数 (LCM)、素数判定を提供する。Pure HSP 実装。

命令/関数説明
factorial(n)n の階乗
combination(n, r)組み合わせ nCr
permutation(n, r)順列 nPr
gcd(a, b)最大公約数
lcm(a, b)最小公倍数
is_prime(n)素数判定 (1=素数, 0=非素数)

iron_montecarlo --- モンテカルロシミュレーション

ソース: package/win32/common/iron_montecarlo.hsp / ヘルプ: package/hsphelp/iron_montecarlo.hs

モンテカルロ法による円周率推定 (単位円内の点の割合) と数値積分 (f(x) = x^2 の区間積分) を提供。Pure HSP 実装。

命令/関数説明
mc_estimate_pi(samples)モンテカルロ法で円周率を推定
mc_integrate_x2(a, b, samples)x^2 の [a, b] 区間積分をモンテカルロ法で近似

iron_filter --- デジタル信号フィルタ

ソース: package/win32/common/iron_filter.hsp / ヘルプ: package/hsphelp/iron_filter.hs

移動平均フィルタ、指数平滑ローパスフィルタ、ハイパスフィルタ (原信号 - ローパス) を提供。センサーデータのノイズ除去や信号処理に使用。Pure HSP 実装。

命令/関数説明
filter_moving_avg data, n, window, out移動平均フィルタ
filter_lowpass data, n, alpha, out指数平滑ローパスフィルタ (alpha: 平滑係数)
filter_highpass data, n, alpha, outハイパスフィルタ
#include "iron_stat.hsp"
dim scores, 5
scores = 80, 90, 70, 100, 60
mes "平均 = " + stat_mean(scores, 5)      ; → 80.0
mes "中央値 = " + stat_median(scores, 5)    ; → 80.0
mes "標準偏差 = " + stat_stddev(scores, 5)  ; → 14.14...

7. 暗号化 / セキュリティ

ハッシュ関数、共通鍵暗号、鍵導出、JWT デコードなどのセキュリティ機能です。

iron_hash --- SHA/MD5/Base64 ハッシュ (BCrypt CNG + Crypt32)

ソース: package/win32/common/iron_hash.hsp / ヘルプ: package/hsphelp/iron_hash.hs

Win32 BCrypt (CNG) と CryptBinaryToString を使った1行ハッシュ API。文字列版とバイナリバッファ版の両方を提供。

命令/関数説明
hash_sha256 "hello"SHA-256 (refstr に hex 64文字)
hash_sha512 "text"SHA-512
hash_md5 "text"MD5
hash_sha256_buf var, lenバイナリバッファ版
base64_encode "text"Base64 エンコード
base64_decode "..."Base64 デコード (refstr + stat にサイズ)

iron_crypto --- AES-256-CBC / Blowfish / RC4 / ChaCha20 / HMAC / PBKDF2

ソース: package/win32/common/iron_crypto.hsp / ヘッダ: package/win32/common/hspcrypto.as / ヘルプ: package/hsphelp/iron_crypto.hs

hspcrypto.dll による暗号化/復号。AES-256-CBC (BCrypt CNG) と Blowfish / RC4 / ChaCha20 (ライブラリ実装) を1行で実行。HMAC-SHA256 と PBKDF2-SHA256 にも対応。

命令/関数説明
aes256_encrypt key32, iv16, data, len, outAES-256-CBC 暗号化
aes256_decrypt key32, iv16, data, len, outAES-256-CBC 復号
chacha20_encrypt key32, nonce12, data, len, outChaCha20 暗号化
hmac_sha256 key, klen, data, dlenHMAC-SHA256
pbkdf2_sha256 pass, salt, slen, iter, outlenPBKDF2 鍵導出

iron_jwt --- JWT トークンデコード

ソース: package/win32/common/iron_jwt.hsp / ヘルプ: package/hsphelp/iron_jwt.hs

JWT の Base64URL デコードでヘッダーとペイロードを取得。Pure HSP 実装。

命令/関数説明
jwt_decode(token)ペイロード JSON を返す
jwt_header(token)ヘッダー JSON を返す

8. 正規表現 / テキスト

2 種類の正規表現エンジンと、文字列操作、Markdown、形態素解析などのテキスト処理モジュールです。

正規表現エンジン比較

iron_regex (std::regex)iron_pcre2 (PCRE2)
エンジンC++11 std::regex (ECMAScript)PCRE2 10.44 (Perl 互換)
Unicode基本対応\p{Hiragana} 等フル対応
先読み/後読み先読みのみ先読み + 後読み
DLL サイズ約 200 KB約 600 KB

共通 API

iron_regexiron_pcre2説明
regex_match p, tpcre2_match p, t全体マッチ → stat (1/0)
regex_search p, tpcre2_search p, t最初のマッチ → refstr
regex_replace p, t, rpcre2_replace p, t, r全置換 → refstr
regex_count(p, t)pcre2_count(p, t)マッチ数
regex_find p, tpcre2_find p, t全マッチ列挙 → stat (件数)
regex_get(i)pcre2_get(i)i 番目のマッチ取得
#include "iron_regex.hsp"   ; or "iron_pcre2.hsp"

regex_search "[0-9]+", "abc123def456"
mes "found: " + refstr              ; → "123"

regex_replace "[aeiou]", "hello world", "*"
mes refstr                           ; → "h*ll* w*rld"

regex_find "[a-z]+@[a-z.]+", "foo@bar.com baz@qux.org"
repeat stat
    mes regex_get(cnt)               ; → "foo@bar.com", "baz@qux.org"
loop

テキスト処理モジュール

iron_str2: 文字列ユーティリティ (str_trim / str_upper / str_lower / str_contains / str_replace)。 iron_strbuf: 文字列ビルダー (高速な文字列結合。sb_init / sb_append / sb_length)。 iron_html: C++ DLL による HTML パース (html_parse / html_find "a" / html_tag_attr)。 iron_markdown: Markdown → HTML 変換 (md_to_html "# Title")。 iron_diff: テキスト差分 (行単位 diff)。 iron_mecab: MeCab 形態素解析 DLL ラッパ (mecab_init / mecab_parse "text")。

9. UI / GUI

ダイアログ、トースト通知、ダークモード、リボン UI、ドッキングパネルなど、UI 拡張モジュール群です。

iron_dialog --- モダンファイルダイアログ / フォルダ選択 (IFileOpenDialog COM)

ソース: package/win32/common/iron_dialog.hsp / ヘルプ: package/hsphelp/iron_dialog.hs

Windows Vista 以降の IFileOpenDialog / IFileSaveDialog COM インターフェースを使った新しいファイルダイアログ。旧 GetOpenFileName より見た目がモダンで、Win10/11 の「最近のフォルダ」「クイックアクセス」「OneDrive」等の左ペインがそのまま使える。フォルダ選択にも対応。hsp3net 専用 (newcom -2 アタッチ)。

命令/関数説明
dialog_open "title", "filter"ファイル選択ダイアログ (refstr にパス、stat=0 成功)
dialog_save "title", "filter", "ext"名前を付けて保存ダイアログ

iron_toast --- タスクトレイバルーン通知

ソース: package/win32/common/iron_toast.hsp / ヘルプ: package/hsphelp/iron_toast.hs

Shell_NotifyIconA + NOTIFYICONDATAA でタスクトレイ領域にバルーン通知を出す簡易 API。Windows 10/11 ではトースト風の通知として表示される。1 行で通知を出したい用途に特化。Pure HSP 実装。

命令/関数説明
toast "title", "body"情報通知 (青 i アイコン)
toast_warning "title", "body"警告通知 (黄 ! アイコン)
toast_error "title", "body"エラー通知 (赤 x アイコン)
toast_clear通知を消してトレイアイコンを削除

iron_toast_winrt --- WinRT モダン トースト通知

ソース: package/win32/common/iron_toast_winrt.hsp / ヘルプ: package/hsphelp/iron_toast_winrt.hs

Windows.UI.Notifications.ToastNotification (WinRT) を HSP から使うラッパ。通知センターに履歴が残り、フォーカスアシストに対応。Start Menu ショートカットと AppUserModelID を自動登録する。hsp3net 専用 (intptr で raw ポインタを扱うため)。

命令/関数説明
toast_winrt_init "display_name", "app_id"初期化 + ToastNotifier 生成
toast_winrt1 "message"1 行テキスト通知
toast_winrt2 "title", "body"タイトル + 本文
toast_winrt3 "title", "line1", "line2"タイトル + 2 行本文
toast_winrt_shutdownCOM 解放

iron_tray --- 通知領域 (タスクトレイ) アイコン

ソース: package/win32/common/iron_tray.hsp / ヘルプ: package/hsphelp/iron_tray.hs

Shell_NotifyIconW でタスクトレイに常駐アイコンを追加・削除する。ツールチップ表示に対応。Pure HSP 実装。

命令/関数説明
tray_add "tooltip"トレイにアイコン追加
tray_removeトレイからアイコン削除

iron_darkmode --- ダークモード有効化

ソース: package/win32/common/iron_darkmode.hsp / ヘルプ: package/hsphelp/iron_darkmode.hs

Windows 10/11 のダークモード検出 (AppsUseLightTheme レジストリ値) と、DwmSetWindowAttribute (DWMWA_USE_IMMERSIVE_DARK_MODE) によるタイトルバーのダーク化を行う。Pure HSP 実装。

命令/関数説明
darkmode_is_enabled()システムのダークモードが有効か (1=ダーク, 0=ライト)
darkmode_apply_titlebarアクティブウィンドウのタイトルバーをダークにする

iron_dpi --- Per-Monitor DPI V2 対応

ソース: package/win32/common/iron_dpi.hsp / ヘルプ: package/hsphelp/iron_dpi.hs

SetProcessDpiAwarenessContext で DPI 認識モード (UNAWARE / SYSTEM_AWARE / PER_MONITOR_AWARE_V2) を設定し、GetDpiForSystem で現在の DPI を取得する。96dpi 基準のスケーリング関数も提供。Pure HSP 実装。

命令/関数説明
dpi_set_awareness modeDPI 認識モード設定 (0=無関心, 1=システム, 2=Per-Monitor V2)
dpi_get()現在の DPI を返す
dpi_get_system()システム DPI を返す
dpi_scale(value)96dpi 基準で value をスケール

iron_ime --- IME 制御

ソース: package/win32/common/iron_ime.hsp / ヘルプ: package/hsphelp/iron_ime.hs

imm32.dll の ImmSetOpenStatus / ImmGetOpenStatus / ImmSetConversionStatus を使った IME 制御。日本語入力の ON/OFF 切り替えや変換モード (ひらがな/カタカナ/直接入力) の設定に使用。Pure HSP 実装。

命令/関数説明
ime_onIME をオンにする
ime_offIME をオフにする
ime_get_state()ON/OFF 状態を返す (1=ON, 0=OFF)
ime_set_mode mode変換モード設定 (0=直接, 1=ひらがな, 2=全角カタカナ)

iron_hotkey --- グローバルホットキー登録

ソース: package/win32/common/iron_hotkey.hsp / ヘルプ: package/hsphelp/iron_hotkey.hs

RegisterHotKey / UnregisterHotKey (user32.dll) でシステムグローバルなホットキーを登録する。MOD_ALT / MOD_CONTROL / MOD_SHIFT / MOD_WIN の修飾キー定数をグローバル定義済み。Pure HSP 実装。

命令/関数説明
hotkey_register id, modifiers, vkホットキー登録 (id は一意な番号)
hotkey_unregister idホットキー解除

iron_webview2 --- Edge WebView2 埋め込み

ソース: package/win32/common/iron_webview2.hsp / ヘッダ: package/win32/common/hspwebview2.as / ヘルプ: package/hsphelp/iron_webview2.hs

hspwebview2.dll で Edge WebView2 を HSP ウィンドウに埋め込み。Navigate / JS 実行 / HSP ←→ JS postMessage bridge。

iron_forms / iron_designer / iron_ribbon* / iron_docking* --- .NET UI コンポーネント

ソース: package/win32/common/iron_forms.hsp

iron_forms: WinForms コントロール生成/レイアウト (Anchor/Dock/DataGridView/MenuStrip 等)。hsp3net 専用。 iron_designer: WebView2 内 GUI デザイナー (ドラッグ配置 → HSP コード自動生成)。 iron_ribbon: WebView2 ベースリボン UI (Light/Dark テーマ)。 iron_ribbon2: WinForms ToolStrip 簡易リボン。 iron_ribbon_pro: WinForms リッチリボン (FlowLayoutPanel グループ、大小ボタン)。 iron_ribbon_native: Windows Ribbon Framework (UIRibbon COM + XML マークアップ)。Pure HSP。 iron_docking: SplitContainer ベース簡易ドッキングパネル。 iron_docking_pro: WeifenLuo DockPanel Suite による VS 風ドッキング (フローティング/自動非表示/タブドキュメント)。

iron_dragdrop --- ドラッグ&ドロップ ファイル受け取り

ソース: package/win32/common/iron_dragdrop.hsp / ヘルプ: package/hsphelp/iron_dragdrop.hs

hsp3net 専用。C# 動的コンパイルで Form.AllowDrop + DragEnter / DragDrop イベントを設定し、ファイルのドラッグ&ドロップを受け取る。ドロップされたファイルパスは改行区切りの文字列として取得可能。

命令/関数説明
dragdrop_enable現在のフォームで DnD を有効化
dragdrop_get_files()ドロップされたファイルパスを取得 (改行区切り)
dragdrop_get_count()ドロップされたファイル数

iron_touch --- タッチ入力シミュレーション

ソース: package/win32/common/iron_touch.hsp / ヘルプ: package/hsphelp/iron_touch.hs

InitializeTouchInjection / InjectTouchInput (user32.dll) で仮想タッチイベントを発行する。UI テストや自動操作に使用。Windows 8 以降。座標はスクリーンピクセル (物理座標)。Pure HSP 実装。

命令/関数説明
touch_init max_contactsタッチ入力初期化 (最大同時タッチ数)
touch_tap x, yタップ (タッチ + リリース)
touch_down id, x, y指を置く
touch_move id, x, y指を動かす
touch_up id, x, y指を離す

iron_magnify --- 画面拡大 (Magnification API)

ソース: package/win32/common/iron_magnify.hsp / ヘルプ: package/hsphelp/iron_magnify.hs

Windows Magnification API を使用した画面拡大機能。全画面拡大の倍率指定と色効果 (反転/グレースケール) に対応。Pure HSP 実装。

命令/関数説明
mag_initMagnification 初期化
mag_fullscreen_on factor全画面拡大 ON (factor: 100=等倍, 200=2倍)
mag_fullscreen_off全画面拡大 OFF
mag_set_color_effect mode色効果 (0=なし, 1=反転, 2=グレースケール)
mag_bye終了処理

iron_splash --- スプラッシュスクリーン

ソース: package/win32/common/iron_splash.hsp / ヘルプ: package/hsphelp/iron_splash.hs

WS_POPUP ウィンドウで画像を表示し、指定ミリ秒後に自動消去するスプラッシュスクリーン。アプリケーション起動時のロゴ表示に使用。Pure HSP 実装。

命令/関数説明
splash_show "image.bmp", 3000スプラッシュ表示 (ミリ秒指定で自動消去)
splash_close手動で閉じる

iron_print --- 印刷ダイアログ + GDI 印刷

ソース: package/win32/common/iron_print.hsp / ヘルプ: package/hsphelp/iron_print.hs

hsp3net 専用。C# 動的コンパイルで PrintDocument / PrintDialog / PrintPreviewDialog を使い、テキストの印刷、印刷プレビュー、ページ設定を行う。フォントは MS Gothic 10pt。ページまたぎ対応。

命令/関数説明
print_text "text"印刷ダイアログを表示して印刷
print_preview "text"印刷プレビューを表示
print_page_setupページ設定ダイアログ

10. ゲーム

ゲーム開発向けのユーティリティモジュールです。

iron_game --- ゲーム開発ユーティリティ

ソース: package/win32/common/iron_game.hsp / ヘルプ: package/hsphelp/iron_game.hs

AABB/円/点の衝突判定4種、2Dベクトル演算 (正規化/回転/角度/距離)、イージング関数10種 (quad/cubic/elastic/bounce)、 FPS カウンター、タイルマップ (init/set/get/draw)、乱数ヘルパー。全て Pure HSP。

命令/関数説明
game_aabb_hit(x1,y1,w1,h1,x2,y2,w2,h2)AABB 衝突判定
game_circle_hit(x1,y1,r1,x2,y2,r2)円同士の衝突判定
ease_quad_in(t)イージング (二次)
tilemap_init w, hタイルマップ初期化
fps_count()FPS カウンター

11. グラフィックス

チャート描画、GDI+、バーコード、QR コードなどのグラフィックス機能です。

iron_chart --- Chart.js グラフ描画 (ブラウザ表示)

ソース: package/win32/common/iron_chart.hsp / ヘルプ: package/hsphelp/iron_chart.hs

Chart.js CDN を使い、一時 HTML を生成してブラウザでグラフを描画。棒/折れ線/円/レーダー/ドーナツ等に対応。

命令/関数説明
chart_init / chart_type CHART_BAR初期化+種類設定
chart_labels "1月","2月","3月"ラベル設定
chart_data "売上", 120, 200, 150データ設定
chart_showブラウザで表示

iron_chart_d2d --- Direct2D 直接描画のグラフ (WebView2 不要)

ソース: package/win32/common/iron_chart_d2d.hsp / ヘルプ: package/hsphelp/iron_chart_d2d.hs

hspd2d (DirectWrite + Direct2D) を使い、HSP ウィンドウに直接グラフを描画。ブラウザ不要。hsp3net 専用。

iron_gdiplus / iron_barcode / iron_qr / iron_color / iron_webpdf --- その他グラフィックス

ソース: package/win32/common/iron_gdiplus.hsp

iron_gdiplus: .NET System.Drawing でスクリーンショット/リサイズ (Bicubic)/回転/グレースケール/透かし。PNG/JPEG/BMP/GIF 出力。hsp3net 専用。 iron_barcode: 1D バーコード BMP 生成。 iron_qr: qrcode-generator JS (CDN) でQRコード生成+ブラウザ表示。 iron_color: 色変換 (RGB/HSV/HEX)。color_rgb2hex(255,0,0)iron_webpdf: WebView2 経由で Web ページを PDF 出力。

#include "iron_chart.hsp"
chart_init
chart_type CHART_BAR
chart_title "月別売上"
chart_labels "1月","2月","3月","4月","5月"
chart_data "売上", 120, 200, 150, 300, 250
chart_show

13. テスト / 開発ツール

ユニットテスト、フェイクデータ生成、ログ出力など、開発を支援するモジュール群です。

iron_test / iron_faker / iron_log / iron_table2 / iron_progress_cl / iron_report

ソース: package/win32/common/iron_test.hsp

iron_test: ユニットテストフレームワーク (test_begin "suite" / assert_eq a, b, "msg" / test_end)。 iron_faker: フェイクデータ生成 (fake_name() / fake_email() / fake_phone())。 iron_log: ログ出力 (log_init "app.log", LOG_INFO / log_info "started" / log_error "failed")。 iron_table2: CLI テーブル整形出力。 iron_progress_cl: CLI プログレスバー表示 (progress_show current, total, width)。 iron_report: HTML テンプレート帳票 ({{key}} でデータ差し込み + ブラウザ表示)。

命令/関数説明
test_begin "suite"テスト開始
assert_eq a, b, "msg"等値アサーション
test_endテスト終了+結果表示
fake_name()フェイク名前生成
log_info "message"INFO レベルログ出力

14. .NET 専用

ネイティブ版の代替として .NET Framework を利用した実装です。hsp3net 専用ですが、TLS/SSL 対応やイベント駆動など、ネイティブ版にない機能を提供します。

.NET ネイティブ代替モジュール

モジュール.NET クラスネイティブ版との違い
iron_regex_netSystem.Text.RegularExpressions名前付きグループ、Split 対応
iron_crypto_netSystem.Security.CryptographySHA256、暗号化安全乱数
iron_registry_netMicrosoft.Win32.Registryより簡潔な API
iron_fwatch_netSystem.IO.FileSystemWatcherイベント駆動 (ポーリング不要)
iron_smtp_netSystem.Net.Mail.SmtpClientTLS/SSL 自動対応
iron_html_netC# 動的コンパイル (Regex)タグ除去 / リンク抽出
iron_ftp_netSystem.Net.FtpWebRequestFTPS (SSL) 対応

iron_math_net --- MathNet.Numerics 連携 (高精度数値演算)

ソース: package/win32/common/iron_math_net.hsp / ヘルプ: package/hsphelp/iron_math_net.hs

MathNet.Numerics ライブラリと連携し、統計 (Mean/StdDev/Correlation)、線形回帰 (Fit.Line)、正規分布 (PDF/CDF/InvCDF)、 連立一次方程式 (行列 Solve)、行列式、Akima スプライン補間、求根を HSP から利用可能。MathNet.Numerics.dll が必要。

iron_docx --- Word .docx 生成

ソース: package/win32/common/iron_docx.hsp / ヘルプ: package/hsphelp/iron_docx.hs

.NET の System.IO.Packaging + System.Xml を使って OpenXML 形式の Word .docx ファイルを直接生成する。Office インストール不要。改行で段落分割。hsp3net 専用。

命令/関数説明
docx_create "file.docx", "本文テキスト".docx ファイルを生成 (改行で段落分割)

iron_pptx --- PowerPoint .pptx 生成

ソース: package/win32/common/iron_pptx.hsp / ヘルプ: package/hsphelp/iron_pptx.hs

.NET の System.IO.Packaging を使って OpenXML 形式の .pptx ファイルを直接生成する。スライドをタイトル + 本文の形式で追加可能。Office インストール不要。hsp3net 専用。

命令/関数説明
pptx_create "file.pptx"新規 .pptx を作成
pptx_add_slide "title", "body"スライド追加
pptx_save保存して閉じる

iron_msgpack --- MessagePack シリアライズ

ソース: package/win32/common/iron_msgpack.hsp / ヘルプ: package/hsphelp/iron_msgpack.hs

C# 動的コンパイルによる MessagePack バイナリシリアライズ。文字列と整数のパック/アンパックに対応。hsp3net 専用。

命令/関数説明
msgpack_pack_str "text", out_buf文字列を MessagePack バイト列にパック

iron_office --- Office COM 自動化 (.NET COM Interop)

ソース: package/win32/common/iron_office.hsp / ヘルプ: package/hsphelp/iron_office.hs

.NET Framework の COM Interop (Type.GetTypeFromProgID + Activator.CreateInstance + dynamic dispatch) を使って Excel / Word / PowerPoint の COM オートメーション (IDispatch late binding) を駆動する。Excel セルの読み書き、Excel/Word/PPT の PDF 変換に対応。Office がインストールされていない環境では全関数が stat != 0 を返す。hsp3net 専用。

命令/関数説明
office_excel_get_cell "file.xlsx", sheet, row, col, varExcel セル値読み取り
office_excel_set_cell "file.xlsx", sheet, row, col, "value"Excel セル値書き込み
office_excel_to_pdf "file.xlsx", "out.pdf"Excel → PDF 変換
office_word_to_pdf "file.docx", "out.pdf"Word → PDF 変換
office_ppt_to_pdf "file.pptx", "out.pdf"PowerPoint → PDF 変換

iron_excel --- Excel .xlsx 読み書き (OpenXML 直接操作)

ソース: package/win32/common/iron_excel.hsp / ヘルプ: package/hsphelp/iron_excel.hs

.NET Framework の System.IO.Packaging + System.Xml を使って .xlsx ファイルを直接読み書きする。Office インストール不要。iron_xlsx.hsp (hsp7z + XML) より高速で、セル座標指定の読み書き API、シート管理、SharedStrings 解析に対応。hsp3net 専用。

命令/関数説明
excel_create "file.xlsx"新規ブック作成 (空の Sheet1)
excel_open "file.xlsx"既存ファイルを開く
excel_set_cell sheet, row, col, "value"セル書き込み (1-origin)
excel_get_cell(sheet, row, col)セル読み取り
excel_sheet_count()シート数
excel_sheet_name(index)シート名取得 (1-origin)
excel_add_sheet "name"シート追加
excel_save保存
excel_close閉じる

その他の .NET 専用モジュール: iron_forms / iron_designer / iron_docking / iron_docking_pro / iron_ribbon / iron_ribbon2 / iron_ribbon_pro

コード例

例 1: 天気予報を取得して JSON パース

#include "iron_http.hsp"
#include "iron_json.hsp"

    url = "https://api.open-meteo.com/v1/forecast?latitude=35.68&longitude=139.69&current=temperature_2m"
    http_get url, body
    if stat = 200 {
        hid = json_load(body)
        mes "東京の現在気温: " + json_dbl(hid, "current.temperature_2m") + " ℃"
        json_release hid
    }
    stop

例 2: タスクトレイ通知

#include "iron_toast.hsp"
    toast "IronHSP", "処理が完了しました"
    toast_warning "注意", "ディスク容量が少なくなっています"
    toast_error "エラー", "ファイルが見つかりません"

例 3: Webcam プレビュー + スナップショット

#include "iron_camera_mf.hsp"
    screen 0, 800, 600
    h = iron_cam_open(0, 0, 0, 800, 600)
    iron_cam_set_aspect h, 1    ; letterbox
    ; ボタン押下でスナップショット:
    iron_cam_save h, "shot.png"
    stop

例 4: Webcam 録画 (映像 + 音声 → MP4)

#include "iron_camera_mf.hsp"
    h = iron_cam_open(0, 0, 0, 800, 600)
    ; カメラ 0、音声デバイス 0、H.264 4Mbps + AAC 128kbps
    iron_cam_record_av h, "output.mp4", 0, "H264", 4000000, "AAC", 16000
    wait 1000    ; 10 秒録画
    iron_cam_record_stop h
    iron_cam_close h
    dialog "output.mp4 を書き出しました"

例 5: マイク録音 → Whisper 文字起こし → AI 応答

#include "iron_camera_mf.hsp"
#include "iron_speech.hsp"
#include "iron_ai.hsp"

    ; マイクで 5 秒録音
    hmic = iron_mic_open(0, 16000, 1, 16)
    iron_mic_save_wav hmic, "voice.wav"
    wait 500
    iron_mic_save_wav_stop hmic
    iron_mic_close hmic

    ; whisper.cpp オフライン認識
    iron_speech_set_backend SPEECH_BACKEND_WHISPER
    iron_speech_set_model "ggml-base.bin"
    iron_speech_set_language "ja"
    iron_speech_open
    iron_speech_transcribe "voice.wav", user_text
    iron_speech_close
    mes "聞こえた: " + user_text

    ; Groq で応答
    iron_ai_set_endpoint "https://api.groq.com/openai/v1"
    iron_ai_set_key "gsk_..."
    iron_ai_set_model "llama3.2"
    iron_ai_chat user_text, reply
    mes "AI: " + reply

例 6: 動画再生 (シーク対応)

#include "iron_video.hsp"
    screen 0, 800, 600
    iron_video_open "movie.mp4", hwnd
    wait 200         ; 2 秒経過したら
    pos_ms = iron_video_position_ms()
    dur_ms = iron_video_duration_ms()
    mes "位置: " + pos_ms + " / " + dur_ms
    iron_video_seek_ms (dur_ms / 2)     ; 真ん中にジャンプ
    stop

例 7: SQLite データベース

#include "iron_db.hsp"
    h = db_open("test.db")
    db_exec h, "CREATE TABLE IF NOT EXISTS users (name TEXT, age INTEGER)"
    db_exec h, "INSERT INTO users VALUES ('Alice', 30)"
    qh = db_query(h, "SELECT name, age FROM users")
    repeat
        db_step qh : if stat = 0 : break
        db_col_text qh, 0, name
        age = db_col_int(qh, 1)
        mes name + ": " + age
    loop
    db_query_close qh
    db_close h

例 8: アーカイブ作成 (7z / zip / tar.gz)

#include "iron_7z.hsp"
    ; 出力拡張子で形式が自動判別される
    iron_7z_add "backup.7z", "mydir\\"
    iron_7z_add "release.zip", "bin\\"
    iron_7z_add "data.tar.gz", "logs\\"

    ; 一覧取得
    iron_7z_list "backup.7z", names, sizes
    repeat stat
        mes names(cnt) + " (" + sizes(cnt) + " bytes)"
    loop

    ; 展開
    iron_7z_extract "backup.7z", "restore\\"

例 9: ローカル HTTP サーバ

#include "iron_webserver.hsp"
    web_open 8080
    repeat
        web_accept method, path, body, 100
        if stat = 1 {
            web_respond 200, "text/html; charset=utf-8", "<h1>Hello " + path + "</h1>"
        }
        stick k : if k & 128 : break
    loop
    web_close

例 10: AI ストリーミング問い合わせ

#include "iron_ai.hsp"
    iron_ai_set_endpoint "https://api.groq.com/openai/v1"
    iron_ai_set_key "gsk_..."
    iron_ai_set_model "llama3.2"

    iron_ai_chat_stream_start "HSP3 について教えて"
    sdim full, 16384 : full = ""
    *loop
        iron_ai_chat_stream_poll delta, done
        if strlen(delta) > 0 {
            full = full + delta
            redraw 0 : color 255,255,255 : boxf 0,0,640,480 : color 0,0,0 : pos 10,10 : mes full : redraw 1
        }
        if done : break
        await 16
        goto *loop
    iron_ai_chat_stream_end

インストール

IronHSP を clone すれば、全部 package/win32/common/iron_*.hsp として配布されています。HSP スクリプト側は:

#include "iron_http.hsp"
#include "iron_json.hsp"
#include "iron_ai.hsp"
; ... 必要なモジュールだけ

依存 DLL (hspjson.dll, hspmfcam.dll 等) は plugins/win32/hsp*/Release/ にビルド出力があるので、それらを HSP 実行ファイルと同じディレクトリにコピーしてください。

設計方針

次のステップ

ライセンス

IronHSP は OpenHSP 3.8beta1 (BSD) をベースとした派生物で、追加分も BSD 扱いです。各 iron_* モジュールも BSD ライセンスで配布されます。サードパーティ DLL (miniz, SQLite, whisper.cpp, Vosk, PCRE2, libssh2, DuckDB 等) はそれぞれの配布元ライセンスに従います。