最終更新: 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 するだけで使えます。
全 iron_* モジュールの一覧です。実装方式とバニラ HSP3 互換性を確認できます。
| モジュール名 | カテゴリ | 実装方式 | 互換 | 一行説明 |
|---|---|---|---|---|
| iron_7z | データ | C++ DLL | △ | 7z / zip / tar.gz / xz / rar 等 40+ アーカイブ形式の圧縮・展開・一覧 |
| iron_ai | AI/ML | Pure HSP | ○ | OpenAI 互換 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++ DLL | △ | WASAPI 音声ループバック録音 (PC 再生音を WAV 保存) |
| iron_barcode | グラフィックス | Pure HSP | ○ | 1D バーコード BMP 生成 |
| iron_ble | ネットワーク | C++ DLL | △ | BLE GATT セントラル (WinRT -- スキャン / 接続 / サービス列挙 / 読み書き / Notify 購読) |
| iron_bloom | データ | Pure HSP | ○ | ブルームフィルタ (確率的メンバーシップ判定) |
| iron_cache | データ | Pure HSP | ○ | TTL 付きインメモリキャッシュ |
| iron_camera | マルチメディア | C++ DLL | △ | Webcam 取り込み (OpenCV / hspcv4 backend) |
| iron_camera_mf | マルチメディア | C++ DLL | △ | Webcam + 録画 + マイク録音 (Pure Media Foundation) |
| iron_capture | マルチメディア | C++ DLL | △ | DXGI Desktop Duplication による画面キャプチャ |
| iron_chart | グラフィックス | Pure HSP | ○ | Chart.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++ DLL | △ | Blowfish / RC4 / ChaCha20 / AES-256-CBC / HMAC / PBKDF2 |
| iron_crypto_net | 暗号化 | .NET | × | .NET System.Security.Cryptography (SHA256 / 暗号化安全乱数) |
| iron_csv | データ | Pure HSP | ○ | RFC 4180 準拠 CSV パーサ / ビルダ (ダブルクォート / 改行対応 / TSV 切替可) |
| iron_curvefit | 数学 | Pure HSP | ○ | カーブフィッティング (最小二乗法) |
| iron_darkmode | UI/GUI | Pure HSP | ○ | ウィンドウのダークモード有効化 (DwmSetWindowAttribute) |
| iron_datetime | ユーティリティ | Pure HSP | ○ | 日付/時刻取得 (ISO 8601 / Unix timestamp / 曜日) |
| iron_db | データ | C++ DLL | △ | SQLite 3.46 組み込みデータベース |
| iron_designer | UI/GUI | .NET | × | WebView2 GUI デザイナー (ドラッグ配置 → HSP コード自動生成) |
| iron_dialog | UI/GUI | Pure HSP | ○ | モダンファイルダイアログ / フォルダ選択 (IFileOpenDialog COM) |
| iron_diff | テキスト | Pure HSP | ○ | テキスト差分 (行単位 diff) |
| iron_docking | UI/GUI | .NET | × | 簡易ドッキングパネル (SplitContainer、左/右/下パネル配置) |
| iron_docking_pro | UI/GUI | .NET | × | VS 風ドッキング (WeifenLuo) -- フローティング/自動非表示/タブドキュメント対応 |
| iron_docx | .NET 専用 | .NET | × | Word .docx ファイル生成 |
| iron_dotenv | ユーティリティ | Pure HSP | ○ | .env ファイルローダー (環境変数風設定) |
| iron_dpi | UI/GUI | Pure HSP | ○ | Per-Monitor DPI V2 対応 (dpi_set_awareness / dpi_scale) |
| iron_dragdrop | UI/GUI | Pure HSP | ○ | ドラッグ&ドロップ受け取り |
| iron_duckdb | データ | C++ DLL | △ | DuckDB 組み込み分析 DB (CSV/Parquet SQL 直接クエリ / インメモリ / 集計・結合・ウィンドウ関数) |
| iron_embedding | AI/ML | Pure HSP | ○ | テキスト埋め込み + ベクトル検索 (コサイン類似度) |
| iron_event | ユーティリティ | Pure HSP | ○ | イベントエミッター (Pub/Sub パターン) |
| iron_excel | .NET 専用 | .NET | × | Excel .xlsx 読み書き (OpenXML 直接操作、Office 不要) |
| iron_exif | マルチメディア | Pure HSP | ○ | EXIF メタデータ読み取り (GDI+ PropertyItem) |
| iron_faker | テスト | Pure HSP | ○ | フェイクデータ生成 (名前 / メール / 電話番号) |
| iron_ffmpeg | マルチメディア | 外部exe | ○ | FFmpeg ラッパー (変換 / 抽出 / トリム) |
| iron_fft | 数学 | Pure HSP | ○ | 高速フーリエ変換 (Cooley-Tukey) |
| iron_filter | 数学 | Pure HSP | ○ | 信号フィルタ (移動平均 / ローパス / ハイパス) |
| iron_folder | システム | Pure HSP | ○ | 特殊フォルダパス取得 (Desktop / AppData / Documents 等) |
| iron_forms | UI/GUI | .NET | × | WinForms コントロール (Anchor/Dock/DataGridView/MenuStrip/StatusStrip/ProgressBar/DateTimePicker) |
| iron_fs | システム | Pure HSP | ○ | ファイルシステム操作 (コピー / 移動 / 削除 / サイズ取得) |
| iron_ftp | ネットワーク | Pure HSP | ○ | FTP クライアント (WinINet API、パッシブモード) |
| iron_ftp_net | .NET 専用 | .NET | × | FTP クライアント .NET 版 (FTPS/SSL 対応) |
| iron_fwatch | システム | Pure HSP | ○ | ファイル / ディレクトリ変更監視 (FindFirstChangeNotification、フィルタ: 名前/サイズ/書込み/属性) |
| iron_fwatch_net | .NET 専用 | .NET | × | ファイル監視 .NET 版 (FileSystemWatcher イベント駆動) |
| iron_ga | AI/ML | Pure HSP | ○ | 遺伝的アルゴリズム |
| iron_game | ゲーム | Pure HSP | ○ | ゲームユーティリティ (AABB/円 衝突判定 4 種 / 2D ベクトル / イージング 10 種 / タイルマップ / FPS カウンタ) |
| iron_gdiplus | グラフィックス | Pure HSP | ○ | GDI+ 画像処理 (.NET) -- スクリーンショット / リサイズ / 回転 / グレースケール / 透かし / PNG・JPEG 保存 |
| iron_geometry | 数学 | Pure HSP | ○ | 2D/3D 幾何学 (面積 / 体積 / 距離) |
| iron_glob | システム | Pure HSP | ○ | 再帰ファイル検索 (glob パターン) |
| iron_graph | 数学 | Pure HSP | ○ | グラフ探索 (BFS / ダイクストラ最短経路) |
| iron_hash | 暗号化 | Pure HSP | ○ | SHA-1/256/384/512 / MD5 / Base64 (BCrypt + Crypt32) |
| iron_hotkey | UI/GUI | Pure HSP | ○ | グローバルホットキー登録 (RegisterHotKey) |
| iron_html | テキスト | C++ DLL | △ | HTML パース (タグ検索 / 属性取得 / テキスト抽出) |
| iron_html_net | .NET 専用 | .NET | × | HTML タグ除去 / リンク抽出 (.NET 版) |
| iron_http | ネットワーク | Pure HSP | ○ | WinHTTP クライアント (GET/POST + カスタムヘッダ + SSE ストリーミング + HTTPS 自動 TLS + タイムアウト制御) |
| iron_humanize | ユーティリティ | Pure HSP | ○ | 人間にやさしい書式変換 (バイト数 / 数値カンマ区切り) |
| iron_ime | UI/GUI | Pure HSP | ○ | IME 制御 (on / off / モード切替) |
| iron_ini | システム | Pure HSP | ○ | INI 設定ファイルの読み書き (GetPrivateProfile*) |
| iron_json | データ | C++ DLL | △ | JSON パース / ビルド (JSONPath / 整形 / minify) |
| iron_jwt | 暗号化 | Pure HSP | ○ | JWT トークンの Base64URL デコード (ヘッダー / ペイロード) |
| iron_kmeans | AI/ML | Pure HSP | ○ | K-means クラスタリング |
| iron_log | テスト | Pure HSP | ○ | ログ出力 (INFO / WARN / ERROR レベル + ファイル出力) |
| iron_magnify | UI/GUI | Pure HSP | ○ | 画面拡大 (Magnification API) |
| iron_markdown | テキスト | Pure HSP | ○ | Markdown から HTML への変換 |
| iron_math_net | .NET 専用 | .NET | × | MathNet.Numerics 連携 (統計/線形回帰/正規分布/連立方程式/行列式/スプライン補間/求根) |
| iron_matrix | 数学 | Pure HSP | ○ | 行列演算 (積 / 転置 / 行列式 / 内積 / 外積) |
| iron_mcp_client | AI/ML | C++ DLL | △ | Model Context Protocol クライアント (stdio + HTTP) |
| iron_mcp_server | AI/ML | C++ DLL | △ | HSP3CL を MCP stdio server 化 (Claude Desktop 連携) |
| iron_mecab | テキスト | C++ DLL | △ | MeCab 形態素解析 |
| iron_mediapipe | AI/ML | C++ DLL | △ | MediaPipe 手検出 / 姿勢推定 (TFLite backend) |
| iron_midi | マルチメディア | C++ DLL | △ | MIDI 入出力 (GM 音色再生 / リアルタイム受信) |
| iron_montecarlo | 数学 | Pure HSP | ○ | モンテカルロ法 (円周率推定 / 数値積分) |
| iron_msgpack | .NET 専用 | .NET | × | MessagePack シリアライズ |
| iron_netinfo | ネットワーク | Pure HSP | ○ | ネットワーク状態取得 (接続確認 / IP アドレス) |
| iron_nn | AI/ML | Pure HSP | ○ | ニューラルネットワーク (1 隠れ層 / XOR 学習) |
| iron_oauth | ネットワーク | Pure HSP | ○ | OAuth 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_onnx | AI/ML | C++ DLL | △ | ONNX Runtime 推論 (DirectML GPU 対応) |
| iron_optimize | 数学 | Pure HSP | ○ | 最適化 (黄金分割法) |
| iron_path | システム | Pure HSP | ○ | パス操作 (結合 / 拡張子 / ファイル名 / 存在確認) |
| iron_pcre2 | 正規表現 | C++ DLL | △ | PCRE2 正規表現 (Perl 互換 / Unicode / 先読み後読み) |
| iron_pdf | データ | C++ DLL | △ | PDF テキスト抽出 + 任意倍率レンダリング + メタデータ取得 (PDFium、パスワード対応) |
| iron_perf | システム | Pure HSP | ○ | マイクロ秒精度パフォーマンスタイマー (QPC) |
| iron_pptx | .NET 専用 | .NET | × | PowerPoint .pptx 生成 |
| iron_print | UI/GUI | Pure HSP | ○ | 印刷ダイアログ + GDI 印刷 |
| iron_process | システム | Pure HSP | ○ | プロセス起動 + stdout キャプチャ + 終了コード取得 |
| iron_progress_cl | ユーティリティ | Pure HSP | ○ | CLI プログレスバー表示 |
| iron_qr | グラフィックス | Pure HSP | ○ | QR コード生成 (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_ribbon | UI/GUI | .NET | × | WebView2 リボン UI (タブ/ボタン/アイコン + Light/Dark テーマ + postMessage 通知) |
| iron_ribbon2 | UI/GUI | .NET | × | WinForms ToolStrip 簡易リボン (TabControl + ToolStrip タブ付きツールバー) |
| iron_ribbon_native | UI/GUI | Pure HSP | ○ | Windows Ribbon Framework (UIRibbon COM / XML マークアップ / hspribbon.dll) |
| iron_ribbon_pro | UI/GUI | .NET | × | WinForms リッチリボン (FlowLayoutPanel グループ / 大小ボタン / ドロップダウン) |
| iron_ruffle | マルチメディア | Pure HSP | ○ | Flash SWF 再生 (Ruffle + WebView2) |
| iron_scraper | ネットワーク | Pure HSP | ○ | Web スクレイピング (リンク / テキスト抽出) |
| iron_sentiment | AI/ML | Pure HSP | ○ | 感情分析 (キーワードベース) |
| iron_serial | システム | Pure HSP | ○ | シリアルポート RS-232 / USB CDC |
| iron_service | システム | Pure HSP | ○ | Windows サービス制御 (start / stop / status) |
| iron_shell | システム | Pure HSP | ○ | ShellExecute / ゴミ箱送り / .lnk ショートカット作成 |
| iron_smtp | ネットワーク | C++ DLL | △ | SMTP メール送信 (AUTH LOGIN / Winsock2) |
| iron_smtp_net | .NET 専用 | .NET | × | メール送信 .NET 版 (TLS/SSL 自動対応) |
| iron_spectrum | マルチメディア | Pure HSP | ○ | スペクトラム解析 (簡易 DFT) |
| iron_speech | AI/ML | C++ DLL | △ | 音声認識統一 API (5 バックエンド: Cloud / whisper / Vosk / SAPI / WinRT) |
| iron_splash | UI/GUI | Pure HSP | ○ | スプラッシュスクリーン (画像表示 + 自動消去) |
| iron_ssh | ネットワーク | C++ DLL | △ | SSH / 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_summarize | AI/ML | Pure HSP | ○ | 抽出型テキスト要約 |
| iron_synth | マルチメディア | Pure HSP | ○ | オーディオ合成 WAV 生成 (サイン波 / 矩形波 / ノイズ) |
| iron_sysinfo | システム | Pure HSP | ○ | OS / CPU / ユーザ情報取得 |
| iron_table2 | ユーティリティ | Pure HSP | ○ | CLI テーブル整形出力 |
| iron_task | システム | Pure HSP | ○ | タスクスケジューラ (schtasks ラッパー) |
| iron_test | テスト | Pure HSP | ○ | ユニットテストフレームワーク (assert_eq / test_begin / test_end) |
| iron_tflite | AI/ML | C++ DLL | △ | TensorFlow Lite 推論 + MediaPipe 手検出ヘルパ |
| iron_toast | UI/GUI | Pure HSP | ○ | タスクトレイバルーン通知 (Shell_NotifyIcon) |
| iron_toast_winrt | UI/GUI | C++ DLL | △ | WinRT トースト通知 (アクションセンター対応) |
| iron_touch | UI/GUI | Pure HSP | ○ | タッチ入力シミュレーション (InjectTouchInput) |
| iron_tray | UI/GUI | Pure HSP | ○ | 通知領域 (タスクトレイ) アイコン |
| iron_uri | ユーティリティ | Pure HSP | ○ | URI パーサ (scheme / host / port / path / query / fragment) |
| iron_url | ユーティリティ | Pure HSP | ○ | URL 操作ユーティリティ |
| iron_urlencode | ユーティリティ | Pure HSP | ○ | URL エンコード / デコード |
| iron_uuid | ユーティリティ | Pure HSP | ○ | UUID v4 生成 |
| iron_validate | ユーティリティ | Pure HSP | ○ | 入力バリデーション (メール / URL / 数値 / 日付等) |
| iron_video | マルチメディア | Pure HSP | × | 動画/音声再生 (MFPlay / シーク / 速度変更 / 音量) |
| iron_wasm | システム | C++ DLL | △ | WebAssembly ランタイム (Wasm3 embed / .wasm 関数呼び出し) |
| iron_webpdf | ユーティリティ | Pure HSP | ○ | Web ページ PDF 出力 (WebView2 経由) |
| iron_webserver | ネットワーク | C++ DLL | △ | localhost HTTP/HTTPS/WebSocket サーバ (HTTP.sys) |
| iron_webview2 | UI/GUI | C++ DLL | △ | Edge WebView2 (Navigate / JS 実行 / HSP<->JS bridge) |
| iron_wgcapture | マルチメディア | C++ DLL | △ | Windows.Graphics.Capture スクリーン/ウィンドウキャプチャ |
| iron_xlsx | データ | Pure HSP | ○ | Excel .xlsx 読み書き (OpenXML 直接解析 / hsp7z で ZIP 展開 / Excel 不要) |
| iron_xml | データ | Pure HSP | ○ | XML 読み書き (MSXML DOM、COM 経由、ファイル / 文字列パース対応) |
| iron_yaml | データ | Pure HSP | ○ | 簡易 YAML パーサー |
Pure HSP: 93 / C++ DLL: 33 / .NET (hsp3net): 20 / 外部 exe: 1 -- バニラ互換 ○: 91 / △ (DLL): 33 / × (hsp3net): 27
iron_* モジュール群の足回りとして新規開発した独立 C++ プラグイン DLL (合計 22 個 / 529 export 関数):
| DLL | 役割 | 関数数 | 対応 |
|---|---|---|---|
hspjson.dll | 自前 JSON parser/writer (依存ゼロ、~300 KB) | 10 | Win32 + x64 |
hspmfcam.dll | Pure Media Foundation Webcam キャプチャ + 録画 + マイク録音 (最大 256 デバイス並列) | 68 | Win32 + x64 |
hspmcp.dll | Model Context Protocol プロセスパイプヘルパ (最大 64 並列) | 7 | Win32 + x64 |
hspwhisper.dll | whisper.cpp オフライン音声認識 (99 言語) | 4 | x64 |
hspvosk.dll | Vosk (Kaldi) オフライン音声認識 (24+ 言語) | 4 | x64 |
hspsapi.dll | Windows SAPI 5 音声認識 (OS 標準) | 3 | Win32 + x64 |
hspwinrtspeech.dll | WinRT Speech マイクライブ認識 | 3 | x64 |
hspwebsrv.dll | HTTP/HTTPS/WebSocket サーバ (HTTP.sys kernel-mode) | 9 | Win32 + x64 |
hsp7z.dll | 7-Zip CLI ラッパ (40+ フォーマット) | 2 | Win32 + x64 |
hspdb.dll | SQLite 3.46.1 amalgamation (最大 32 DB / 64 query) | 14 | x64 |
hspmidi.dll | winmm MIDI in/out (GM 音色 + リアルタイム受信) | 16 | x64 |
hspwasm.dll | Wasm3 WebAssembly ランタイム embed | 10 | x64 |
hsppdf.dll | PDFium PDF テキスト抽出 + ビットマップ化 | 11 | x64 |
hspduckdb.dll | DuckDB 分析 DB (CSV/Parquet 直接クエリ) | 10 | x64 |
hspwebview2.dll | Edge WebView2 統合 (Navigate / JS / postMessage bridge) | 12 | x64 |
hsponnx.dll | ONNX Runtime (DirectML GPU 推論) | 13 | x64 |
hspllama.dll | llama.cpp ローカル LLM 推論 (GGUF) | 11 | x64 |
hsptflite.dll | TensorFlow Lite + MediaPipe 手検出 | 19 | x64 |
hspwinrtocr.dll | Windows.Media.Ocr ローカル OCR | 5 | x64 |
hspwgcapture.dll | Windows.Graphics.Capture スクリーンキャプチャ | 8 | x64 |
hspble.dll | BLE GATT クライアント (scan / connect / r/w / notify) | 13 | x64 |
hspcv4.dll | OpenCV 4.12 統合 (画像 / フィルタ / DNN / 追跡 / ArUco 等) | 277 | x64 |
DirectWrite + Direct2D による高品質テキスト描画、DxLib の 2,548 関数をまるごと HSP から呼び出せる統合ヘッダ、OpenCV 4.12 の 277 関数を搭載する画像処理プラグインを含みます。
ソース: 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_init | COM 初期化 + 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 | リソース解放 |
ソース: 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.as | HSP 風の短縮名マクロ: dxinit / dxdraw / dxflip 等 | 利便性マクロ |
| カテゴリ | 関数数 | 代表的な関数 |
|---|---|---|
| 2D 描画 | ~460 | DrawGraph / DrawRotaGraph / DrawModiGraph / DrawBox / DrawCircle / DrawLine / DrawPixel |
| 文字列描画 | ~170 | DrawString / DrawFormatString / DrawNString / DrawRotaString / DrawModiString |
| 3D モデル (MV1) | ~372 | MV1LoadModel / MV1DrawModel / MV1SetPosition / MV1SetRotationXYZ / MV1SetupCollInfo / MV1CollCheck_Sphere |
| サウンド | ~200 | LoadSoundMem / PlaySoundMem / StopSoundMem / ChangeVolumeSoundMem / SetFrequencySoundMem |
| 画面 / ウィンドウ | ~142 | SetGraphMode / ChangeWindowMode / SetDrawScreen / ScreenFlip / ClearDrawScreen / SetBackgroundColor |
| 入力 (キーボード/マウス/ジョイパッド/タッチ) | ~140 | CheckHitKey / GetMousePoint / GetJoypadInputState / GetTouchInputNum |
| 画像読み込み / 管理 | ~114 | LoadGraph / LoadDivGraph / CreateGraphFromMem / DerivationGraph / GetGraphSize |
| フォント | ~91 | CreateFontToHandle / SetDefaultFontState / GetDrawStringWidth / ChangeFontType |
| シェーダー | ~52 | LoadPixelShader / LoadVertexShader / SetUsePixelShader / SetShaderConstantF |
| Live2D Cubism | ~51 | Live2D_LoadModel / Live2D_DrawModel / Live2D_SetParameterValue |
| ネットワーク | ~37 | ConnectNetWork / MakeUDPSocket / NetWorkSendUDP / NetWorkRecvUDP / ProcessHttpRequestAsync |
| ファイル I/O | ~36 | FileRead_open / FileRead_gets / FileRead_close / SetUseDXArchiveFlag |
| 動画再生 | ~28 | PlayMovieToGraph / PauseMovieToGraph / SeekMovieToGraph / GetMovieStateToGraph |
構造体値返し (#cfuncst) | 159 | GetCameraPosition / GetCameraTarget / VGet / VAdd / VScale / VCross / MGetIdent / MGetScale 等 (VECTOR / MATRIX 構造体を値で返す) |
VECTOR や MATRIX を値で返す関数が 159 個あります。これらは IronHSP の #cfuncst ディレクティブで宣言されており、戻り値は自動的に NSTRUCT 変数に格納されます。-> 演算子でメンバにアクセスできます:
pos = GetCameraPosition()
mes "x=" + pos->x + " y=" + pos->y + " z=" + pos->z
DxLibW.dll (32bit) または DxLibW_x64.dll (64bit) を HSP 実行ファイルと同じディレクトリに配置#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
ソース: 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, bmscr | OpenCV 画像を HSP ウィンドウに転送 |
cv4putimg id, bmscr | HSP ウィンドウ内容を OpenCV 画像に取り込み |
cv4cvt src, dst, code | 色変換 (BGR→GRAY 等) |
cv4resize src, dst, w, h | リサイズ |
cv4_gaussian_blur src, dst, kw, kh | ガウシアンブラー |
cv4_canny src, dst, th1, th2 | Canny エッジ検出 |
cv4_cascade_detect_multi h, img, rects, n | Haar カスケード顔検出 |
cv4_dnn_read_net "model.onnx" | DNN モデル読み込み |
cv4_dnn_forward net_id, out_id | DNN 推論実行 |
cv4_find_contours src, ... | 輪郭検出 |
cv4_orb_detect img, kp, n | ORB 特徴量検出 |
cv4_aruco_detect img, dict, corners, ids, n | ArUco マーカー検出 |
cv4del id / cv4reset | ハンドル解放 / 全解放 |
OS 操作、ファイルシステム、設定管理、プロセス制御など基本的なシステム機能を提供するモジュール群です。
多くは Win32 API を #cfunc で直接呼ぶ Pure HSP 実装で、外部 DLL 不要です。
ソース: 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 | 全セクション名を配列に取得 |
ソース: 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() | 一時ファイルパスを生成して返す |
ソース: 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% パスを返す |
ソース: 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 ディレクトリ |
ソース: 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 ショートカット作成 |
ソース: 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 に終了コード |
ソース: package/win32/common/iron_sysinfo.hsp / ヘルプ: package/hsphelp/iron_sysinfo.hs
GetUserNameA、GetComputerNameA、GetSystemInfo、GetTickCount 等をラップ。
ユーザー名、コンピュータ名、CPU 論理コア数、ページサイズ、起動時間、各種ディレクトリを1命令で取得。
| 命令/関数 | 説明 |
|---|---|
sys_username | ログオンユーザー名 (refstr) |
sys_computername | コンピュータ名 (refstr) |
sys_cpucount | 論理プロセッサ数 (stat) |
sys_uptime | 起動からの経過ミリ秒 (stat) |
sys_temp_path | %TEMP% パス (refstr) |
sys_appdata | %APPDATA% パス (refstr) |
ソース: 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) |
ソース: 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) |
ソース: 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() | ファイルドロップリスト取得 |
ソース: 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 | ポートクローズ |
ソース: 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", val | DWORD 値を書き込み |
reg_delete_value hkey, "subkey", "name" | 値を削除 |
reg_exists(hkey, "subkey", "name") | 値が存在するか (1/0) |
ソース: 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 | 監視終了 |
ソース: package/win32/common/iron_glob.hsp / ヘルプ: package/hsphelp/iron_glob.hs
iron_fs を再帰的に呼び出し、ワイルドカードパターンに一致するファイルを全て列挙する。結果は改行区切りの文字列。
| 命令/関数 | 説明 |
|---|---|
glob_find "dir", "*.txt", 1 | 再帰検索 (第3引数 1=再帰, 0=非再帰) |
ソース: 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=実行中) |
ソース: 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" | タスク照会 |
ソース: package/win32/common/iron_wasm.hsp / ヘッダ: package/win32/common/hspwasm.as / ヘルプ: package/hsphelp/iron_wasm.hs
hspwasm.dll の糖衣モジュール。.wasm ファイルをロードし関数を呼び出せる。固定アリティ版 wasm_call0〜wasm_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, len | linear memory 読み取り |
wasm_mem_write h, off, src, len | linear memory 書き込み |
wasm_close h | ハンドル解放 |
ソース: 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() | 実行結果を取得 |
ソース: 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 起動からの経過ミリ秒 |
ソース: 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) |
ソース: package/win32/common/iron_dotenv.hsp / ヘルプ: package/hsphelp/iron_dotenv.hs
.env ファイル (KEY=VALUE) を読み込み SetEnvironmentVariableW で環境変数に設定。コメント (#) やクォート除去に対応。API キー管理に便利。
| 命令/関数 | 説明 |
|---|---|
dotenv_load ".env" | .env を読み込んで環境変数に設定 |
ソース: package/win32/common/iron_uuid.hsp / ヘルプ: package/hsphelp/iron_uuid.hs
rpcrt4.dll の UuidCreate で暗号論的安全な UUID v4 文字列を生成。
| 命令/関数 | 説明 |
|---|---|
uuid_generate() | UUID v4 文字列を返す |
クラウド AI API 連携からオンデバイス推論まで、幅広い AI/ML 機能を提供します。
ソース: 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" | 会話履歴に追加 |
ソース: 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 | リソース解放 |
ソース: 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_initialize | MCP ハンドシェイク |
iron_mcp_call "tool", "{...}", result | ツール呼び出し |
iron_mcp_tools_count() | ツール数取得 |
iron_mcp_close | 切断 |
ソース: 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" | ハンドラ内で結果設定 |
ソース: 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) | コサイン類似度計算 |
ソース: 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" の文字列ラベルを返す |
ソース: package/win32/common/iron_summarize.hsp / ヘルプ: package/hsphelp/iron_summarize.hs
テキストを改行で文に分割し、文の長さをヒューリスティックな重要度指標として上位 N 文を抽出する。Pure HSP 実装で外部依存なし。
| 命令/関数 | 説明 |
|---|---|
summarize(text, max_sentences) | text から最大 max_sentences 文を抽出して要約結果を返す |
ソース: 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, labels | 2D K-means クラスタリング (x,y: double 配列, n: 点数, k: クラスタ数) |
ソース: 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, epochs | XOR パターンの学習 (weights 配列に w1, w2, bias を出力) |
ソース: 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_evolve | 1 世代進化 (選択 + 交叉 + 突然変異) |
ga_best() | 最高適応度の個体の遺伝子値を返す |
ga_get(index) | index 番目の個体の遺伝子値を返す |
ソース: 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 h | DirectML GPU に切替 |
iron_onnx_close h | セッション解放 |
ソース: 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 | モデル解放 |
ソース: 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, y | 21 キーポイント座標取得 |
mp_hand_close | リソース解放 |
| バックエンド | 定数 | 入力 | 品質 | 言語 | 必要なもの |
|---|---|---|---|---|---|
| Cloud Whisper API | SPEECH_BACKEND_CLOUD | ファイル | 最高 | 99 言語 | API キー |
| whisper.cpp | SPEECH_BACKEND_WHISPER | ファイル | 最高 | 99 言語 | GGML model (75 MB〜) |
| Vosk (Kaldi) | SPEECH_BACKEND_VOSK | ファイル | 中 | 24+ 言語 | Vosk model (47 MB〜) |
| Windows SAPI 5 | SPEECH_BACKEND_SAPI | ファイル | 低 | OS 依存 | Windows 言語パック |
| WinRT Speech | SPEECH_BACKEND_WINRT | マイク | 中 | OS 依存 | 同上 |
動画再生、Webcam、録音、FFmpeg 連携、音声合成など、メディア処理に関するモジュール群です。
ソース: 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_step | 1フレーム進める |
iron_video_set_rate 2.0 | 再生速度変更 |
iron_video_set_volume 0.5 | 音量 (0.0〜1.0) |
iron_video_close | 解放 |
ソース: package/win32/common/iron_camera.hsp / ヘルプ: package/hsphelp/iron_camera.hs
hspcv4 の VideoCapture を薄くラップし、Webcam から1フレーム取得して HSP ウィンドウに描画を1行で実現。
| 命令/関数 | 説明 |
|---|---|
iron_camera_open 0 | カメラ開く (デバイスインデックス) |
iron_camera_read | 1フレーム取得 |
iron_camera_draw x, y | HSP ウィンドウに描画 |
iron_camera_save "file.png" | 現在フレームを保存 |
iron_camera_close | カメラを閉じる |
ソース: 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 | カメラ閉じる |
ソース: 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 | 終了処理 |
ソース: 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, h | BGRA バッファ取得 |
ソース: 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 完成 |
ソース: 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" | サムネイル生成 |
ソース: 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 生成 |
ソース: package/win32/common/iron_spectrum.hsp / ヘルプ: package/hsphelp/iron_spectrum.hs
16bit PCM サンプル配列に対して離散フーリエ変換 (DFT) を行い、周波数ごとの振幅スペクトラムを計算する。オーディオ可視化やスペクトログラム表示に使用。Pure HSP 実装。
| 命令/関数 | 説明 |
|---|---|
spectrum_compute samples, n, bins, num_bins | DFT スペクトラム計算 (samples: int 配列, bins: double 出力配列) |
ソース: 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 devid | MIDI 出力デバイスを開く |
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_poll | MIDI 入力 (ポーリング式) |
midi_out_close | デバイスを閉じる |
ソース: 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 | 画像を閉じる |
ソース: 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, h | WebView2 + Ruffle 初期化 (stat に wv_id) |
ruffle_load wv_id, "movie.swf" | SWF ファイルの読み込み・再生 |
ruffle_close wv_id | 再生終了・リソース解放 |
HTTP / FTP / SMTP / SSH / OAuth / BLE など、通信プロトコル全般をカバーします。
ソース: 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, body | GET リクエスト (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, ctype | SSE ストリーミング開始 |
http_stream_read buf, max | ストリーム差分読み取り |
ソース: 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 8080 | HTTP サーバ開始 |
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 | サーバ停止 |
ソース: 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 | 切断 |
ソース: 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() | エラーメッセージ取得 |
ソース: 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 | 切断 |
ソース: package/win32/common/iron_oauth.hsp / ヘルプ: package/hsphelp/iron_oauth.hs
ws2_32 (Winsock) で localhost TCP リスナーを立て、ブラウザ認証後のリダイレクトコードを自動受信。Google / GitHub 等の認証フローに対応。
| 命令/関数 | 説明 |
|---|---|
oauth_start_listener 8080 | TCP リスナー開始 |
oauth_wait_code 30 | コード受信待ち (秒) |
oauth_token "url", "client_id", code, "redirect" | トークン交換 |
ソース: 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 アドレス |
JSON / CSV / YAML / XML / DB / PDF / アーカイブなど、データの読み書きとストレージに関するモジュール群です。
ソース: 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 | 個別解放 |
ソース: 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 | ファイル書き出し |
ソース: 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 | 解放 |
ソース: 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'", rh | CSV 直接クエリ |
db_fetch_str(rh, row, col) | 結果取得 (文字列) |
db_rows(rh) / db_cols(rh) | 行数/列数 |
db_free rh / db_close h | 解放 |
ソース: 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" | 整合性テスト |
ソース: 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" | 保存 |
ソース: package/win32/common/iron_pdf.hsp / ヘッダ: package/win32/common/hsppdf.as / ヘルプ: package/hsphelp/iron_pdf.hs
hsppdf.dll (PDFium) のラッパ。PDF からテキスト抽出、任意倍率でビットマップレンダリング、メタデータ (タイトル/著者) 取得。パスワード付き PDF にも対応。
| 命令/関数 | 説明 |
|---|---|
pdf_begin / pdf_end | PDFium 初期化/終了 |
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, h | BGRA バッファ取得 |
ソース: package/win32/common/iron_yaml.hsp / ヘルプ: package/hsphelp/iron_yaml.hs
key: value 形式のフラットな YAML テキストをパースする。コメント (#) 対応。ネスト構造には非対応だが、設定ファイルの読み込みには十分。Pure HSP 実装。
| 命令/関数 | 説明 |
|---|---|
yaml_load text | YAML テキストをパース (stat にエントリ数) |
yaml_get("key") | キーに対応する値を返す (未発見時は "") |
yaml_count() | パースしたエントリ数を返す |
ソース: 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 xmlstr | XML 文字列をパース |
ソース: 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() | 要素数 |
ソース: 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=含まれない) |
ソース: 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 | 全エントリ削除 |
FFT、複素数、幾何学、統計、最適化など、科学計算に必要な数学関数群です。全て Pure HSP 実装です。
ソース: 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 | 記述統計一括出力 |
ソース: 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 が変換結果で上書きされる) |
ソース: 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) | 偏角 (ラジアン) |
ソース: 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) |
ソース: 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) | 球の表面積 |
ソース: 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, pz | 3D 点を回転 |
ソース: package/win32/common/iron_graph.hsp / ヘルプ: package/hsphelp/iron_graph.hs
隣接行列ベースのグラフ探索アルゴリズム。幅優先探索 (BFS) と重み付きダイクストラ最短経路を提供する。Pure HSP 実装。
| 命令/関数 | 説明 |
|---|---|
graph_bfs adj, start, n, dist | BFS (dist 配列に各ノードまでの距離) |
graph_dijkstra weight, start, n, dist | ダイクストラ (dist 配列に最短距離) |
ソース: 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 で解く |
ソース: 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 を返す |
ソース: 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 を返す |
ソース: 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) | 一様実数分布乱数 |
ソース: 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=非素数) |
ソース: 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] 区間積分をモンテカルロ法で近似 |
ソース: 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...
ハッシュ関数、共通鍵暗号、鍵導出、JWT デコードなどのセキュリティ機能です。
ソース: 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 にサイズ) |
ソース: 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, out | AES-256-CBC 暗号化 |
aes256_decrypt key32, iv16, data, len, out | AES-256-CBC 復号 |
chacha20_encrypt key32, nonce12, data, len, out | ChaCha20 暗号化 |
hmac_sha256 key, klen, data, dlen | HMAC-SHA256 |
pbkdf2_sha256 pass, salt, slen, iter, outlen | PBKDF2 鍵導出 |
ソース: package/win32/common/iron_jwt.hsp / ヘルプ: package/hsphelp/iron_jwt.hs
JWT の Base64URL デコードでヘッダーとペイロードを取得。Pure HSP 実装。
| 命令/関数 | 説明 |
|---|---|
jwt_decode(token) | ペイロード JSON を返す |
jwt_header(token) | ヘッダー JSON を返す |
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 |
| iron_regex | iron_pcre2 | 説明 |
|---|---|---|
regex_match p, t | pcre2_match p, t | 全体マッチ → stat (1/0) |
regex_search p, t | pcre2_search p, t | 最初のマッチ → refstr |
regex_replace p, t, r | pcre2_replace p, t, r | 全置換 → refstr |
regex_count(p, t) | pcre2_count(p, t) | マッチ数 |
regex_find p, t | pcre2_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")。
ダイアログ、トースト通知、ダークモード、リボン UI、ドッキングパネルなど、UI 拡張モジュール群です。
ソース: 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" | 名前を付けて保存ダイアログ |
ソース: 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 | 通知を消してトレイアイコンを削除 |
ソース: 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_shutdown | COM 解放 |
ソース: package/win32/common/iron_tray.hsp / ヘルプ: package/hsphelp/iron_tray.hs
Shell_NotifyIconW でタスクトレイに常駐アイコンを追加・削除する。ツールチップ表示に対応。Pure HSP 実装。
| 命令/関数 | 説明 |
|---|---|
tray_add "tooltip" | トレイにアイコン追加 |
tray_remove | トレイからアイコン削除 |
ソース: 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 | アクティブウィンドウのタイトルバーをダークにする |
ソース: 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 mode | DPI 認識モード設定 (0=無関心, 1=システム, 2=Per-Monitor V2) |
dpi_get() | 現在の DPI を返す |
dpi_get_system() | システム DPI を返す |
dpi_scale(value) | 96dpi 基準で value をスケール |
ソース: package/win32/common/iron_ime.hsp / ヘルプ: package/hsphelp/iron_ime.hs
imm32.dll の ImmSetOpenStatus / ImmGetOpenStatus / ImmSetConversionStatus を使った IME 制御。日本語入力の ON/OFF 切り替えや変換モード (ひらがな/カタカナ/直接入力) の設定に使用。Pure HSP 実装。
| 命令/関数 | 説明 |
|---|---|
ime_on | IME をオンにする |
ime_off | IME をオフにする |
ime_get_state() | ON/OFF 状態を返す (1=ON, 0=OFF) |
ime_set_mode mode | 変換モード設定 (0=直接, 1=ひらがな, 2=全角カタカナ) |
ソース: 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 | ホットキー解除 |
ソース: 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。
ソース: 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 風ドッキング (フローティング/自動非表示/タブドキュメント)。
ソース: 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() | ドロップされたファイル数 |
ソース: 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 | 指を離す |
ソース: package/win32/common/iron_magnify.hsp / ヘルプ: package/hsphelp/iron_magnify.hs
Windows Magnification API を使用した画面拡大機能。全画面拡大の倍率指定と色効果 (反転/グレースケール) に対応。Pure HSP 実装。
| 命令/関数 | 説明 |
|---|---|
mag_init | Magnification 初期化 |
mag_fullscreen_on factor | 全画面拡大 ON (factor: 100=等倍, 200=2倍) |
mag_fullscreen_off | 全画面拡大 OFF |
mag_set_color_effect mode | 色効果 (0=なし, 1=反転, 2=グレースケール) |
mag_bye | 終了処理 |
ソース: package/win32/common/iron_splash.hsp / ヘルプ: package/hsphelp/iron_splash.hs
WS_POPUP ウィンドウで画像を表示し、指定ミリ秒後に自動消去するスプラッシュスクリーン。アプリケーション起動時のロゴ表示に使用。Pure HSP 実装。
| 命令/関数 | 説明 |
|---|---|
splash_show "image.bmp", 3000 | スプラッシュ表示 (ミリ秒指定で自動消去) |
splash_close | 手動で閉じる |
ソース: 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 | ページ設定ダイアログ |
ゲーム開発向けのユーティリティモジュールです。
ソース: 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 カウンター |
チャート描画、GDI+、バーコード、QR コードなどのグラフィックス機能です。
ソース: 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 | ブラウザで表示 |
ソース: package/win32/common/iron_chart_d2d.hsp / ヘルプ: package/hsphelp/iron_chart_d2d.hs
hspd2d (DirectWrite + Direct2D) を使い、HSP ウィンドウに直接グラフを描画。ブラウザ不要。hsp3net 専用。
ソース: 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
ユニットテスト、フェイクデータ生成、ログ出力など、開発を支援するモジュール群です。
ソース: 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 レベルログ出力 |
ネイティブ版の代替として .NET Framework を利用した実装です。hsp3net 専用ですが、TLS/SSL 対応やイベント駆動など、ネイティブ版にない機能を提供します。
| モジュール | .NET クラス | ネイティブ版との違い |
|---|---|---|
iron_regex_net | System.Text.RegularExpressions | 名前付きグループ、Split 対応 |
iron_crypto_net | System.Security.Cryptography | SHA256、暗号化安全乱数 |
iron_registry_net | Microsoft.Win32.Registry | より簡潔な API |
iron_fwatch_net | System.IO.FileSystemWatcher | イベント駆動 (ポーリング不要) |
iron_smtp_net | System.Net.Mail.SmtpClient | TLS/SSL 自動対応 |
iron_html_net | C# 動的コンパイル (Regex) | タグ除去 / リンク抽出 |
iron_ftp_net | System.Net.FtpWebRequest | FTPS (SSL) 対応 |
ソース: 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 が必要。
ソース: 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 ファイルを生成 (改行で段落分割) |
ソース: 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 | 保存して閉じる |
ソース: package/win32/common/iron_msgpack.hsp / ヘルプ: package/hsphelp/iron_msgpack.hs
C# 動的コンパイルによる MessagePack バイナリシリアライズ。文字列と整数のパック/アンパックに対応。hsp3net 専用。
| 命令/関数 | 説明 |
|---|---|
msgpack_pack_str "text", out_buf | 文字列を MessagePack バイト列にパック |
ソース: 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, var | Excel セル値読み取り |
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 変換 |
ソース: 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
#include "iron_http.hsp"
#include "iron_json.hsp"
url = "https://api.open-meteo.com/v1/forecast?latitude=35.68&longitude=139.69¤t=temperature_2m"
http_get url, body
if stat = 200 {
hid = json_load(body)
mes "東京の現在気温: " + json_dbl(hid, "current.temperature_2m") + " ℃"
json_release hid
}
stop
#include "iron_toast.hsp"
toast "IronHSP", "処理が完了しました"
toast_warning "注意", "ディスク容量が少なくなっています"
toast_error "エラー", "ファイルが見つかりません"
#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
#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 を書き出しました"
#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
#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
#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
#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\\"
#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
#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 実行ファイルと同じディレクトリにコピーしてください。
http_get url, body 1 行で HTTP 取得が完結するpackage/hsphelp/iron_*.hs があり、HSP IDE で命令名にカーソルを合わせて F1 で日本語リファレンスが開きますpackage/win32/sample/iron/ にそれぞれのモジュールの動作サンプルがありますdocs/IronHSP_specification.html のセクション 17 で全機能を解説IronHSP は OpenHSP 3.8beta1 (BSD) をベースとした派生物で、追加分も BSD 扱いです。各 iron_* モジュールも BSD ライセンスで配布されます。サードパーティ DLL (miniz, SQLite, whisper.cpp, Vosk, PCRE2, libssh2, DuckDB 等) はそれぞれの配布元ライセンスに従います。