3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本語プログラミング言語MindのCGIをIIS10.0で実行する(ステップ3)

Last updated at Posted at 2025-12-14

はじめに

日本語プログラミング言語MindのCGIをIIS10.0で実行するのステップ3です。IIS(Windowsに古くから備わるWebサーバーサービスで今回のバージョンは10.0)での設定方法をステップ2までで確定いたしました。今回はCSSのインクルードを試みます。

前提条件
Windows11 Pro 22H2 22621.4169
Mind Version 8.0.08 for Windows
Internet Information Servicies 10.0

環境の構成

C#とkestrelで実行するのフォルダ環境をほぼそのまま使います。

C#とkestrelで実行していた場合は、アプリ本体の中間コードファイルmcoはプロジェクトルートに置かないと実行できませんでしたが、前回はCGI実行フォルダに引っ越しています。

C:\developments\vscode\kestrelcgi
├─cgi
│      test-form-submit.cgi
│      test-form-submit.mco
│      test-form.cgi
│      test-form.mco
└─wwwroot
    │  favicon.ico
    │  index.html
    ├─css
    │      site.css
    ├─js
    │      site.js
    └─lib
        ├─bootstrap
        │  └─dist
        │      ├─css
        │      └─js
        ├─jquery
        ├─jquery-validation
        └─jquery-validation-unobtrusive

Mind CGIアプリケーションの作成

今回はMind8のCGIサンプルを少し修正して動かしますが、動かすのは実行パス設定した下記の機能です。
「フォームのテスト」cgi/test-form.cgi

cgiフォルダにはMind8インストールフォルダ配下のC:\pmind\cgilib\sample
からmrunt160.exeランタイムと上記cgiファイルに対応した中間コードファイルmcoがコピーされています。

Mind CGIライブラリの修正

ソースコード提供されているCGIライブラリのheader.srcを修正します。

「CSSデータ1、2、3」という文字列実体変数を追加。
「html5をDOCTYPEデータ設定」という単語を追加。
「htmlヘッダ出力0」という単語内で「CSSデータ1、2、3」の出力処理を追加します。

cgilib/header.src
※~略~
METAデータ1とは     文字列実体 長さ 128。
METAデータ2とは     文字列実体 長さ 128。
DOCTYPEデータとは  文字列実体 長さ 128。
CSSデータ1とは      文字列実体 長さ 128。※追加
CSSデータ2とは      文字列実体 長さ 128。※追加
CSSデータ3とは      文字列実体 長さ 128。※追加
BODYデータとは     文字列実体 長さ 128。
ヘッダ内平仮名は      文字列実体 長さ  80。

※~略~
html5をDOCTYPEデータ設定とは (・ → ・)  ※新デフォルト ※Pmod ※追加
     	「<!DOCTYPE html>」を
	DOCTYPEデータに 入れる。
    
※~略~
	ローカル。

htmlヘッダ出力0とは (タイトル、スタック検査指定 → ・)
		タイトルは 文字列
		スタック検査指定は  変数
		スタックエラー検出は 変数
	タイトルと スタック検査指定に 入れ
	スタック検査指定
		ならば スタック検査0し 偽?を スタックエラー検出に 入れ
		つぎに
  ※~略~
	※
		「<TITLE>」を 表示し タイトルを 表示し
					「</TITLE>」を 一行表示し
		CSSデータ1が 非空列?
			ならば ※注:TITLEより後に※
				CSSデータ1を 一行表示し
			つぎに
		CSSデータ2が 非空列?
			ならば ※注:TITLEより後に※
				CSSデータ2を 一行表示し
			つぎに
		CSSデータ3が 非空列?
			ならば ※注:TITLEより後に※
				CSSデータ3を 一行表示し
			つぎに
			「</HEAD>」を 一行表示し
		改行し
		ヘッダ出力済み・htmlヘッダを
		 htmlヘッダ出力済みに 入れ
	つぎに
	※
    ※~略~
    	※
  (スタック検査)
	スタック検査指定
	ならば スタックエラー検出
		ならば 「<br><br><h3>エラー:スタックがずれてい」続
			「ます(htmlヘッダ出力時)</h3>」を 表示し
		つぎに
	つぎに。

ソースコード提供されているCGIライブラリのcgilib.srcも若干修正します。
「CGILIB初期化0」という単語内で「html4.0をDOCTYPEデータ設定し」をコメントアウトして「html5をDOCTYPEデータ設定し」を実行するように追記します。

cgilib/cgilib.src
※~略~
CGILIB初期化0とは 本定義  (file/ckaridef.srcにて仮定義)
	mimeセパレータ文字列作成し
	エラー出力を標準出力に切り替え
	BASE64テーブル初期化0し
	html5をDOCTYPEデータ設定し	※Pmod
※	html4.0をDOCTYPEデータ設定し
※	html3.2をDOCTYPEデータ設定し
※	html2.0をDOCTYPEデータ設定し
	DOS環境
		ならば sjisをcharset設定し
		さもなければ
			eucをcharset設定し
		つぎに
	ヘッダ内平仮名を初期設定し
	名前と値の強制格納プールを獲得し	※2001/08/19
	「</HTML>」を /html定数に 入れ
	デフォルトのnphヘッダを nphヘッダ行に 入れ
	。
※~略~

Mind CGIライブラリのコンパイル

Mind8

C:\developments\vscode\mind9\cgilib>mind cgilib socketlibg obj\        

日本語プログラミング言語 Mind Version 8.07 for Windows
          Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了

割愛していますが、Mind7とMind9βでも同様です。また、下位ライブラリはsocketlibgを指定してください。fileでもビルド通過しますが、この新しいcgilibを下位指定してビルド結果の拡張子がexeではなくcgiとなるのはこのsocketlibgの指定によるものです。

Mind サンプルの修正

内容にオリジナルとの有意差はないのですが、生成されるhtmlを少し増やしています。
CSSデータ1と2にCSSへのリンクパスを設定しています。

cgilib\sample\test-form.src
メインとは
	「<link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.min.css" />」を CSSデータ1に 入れ
	「<link rel="stylesheet" href="/css/site.css" />」を CSSデータ2に 入れ
	「フォームのテスト」で htmlヘッダを出力し

	H3開始 「お名前とご年齢を教えてください」を 表示し H3終り
	BR
	BR

	「<FORM method="post" action="test-form-submit.cgi">」を 一行表示し
	「<INPUT type=hidden name="jcode-a" value="あ">」を 一行表示し
	「<div class="mb-3">」を 一行表示し
	「<label for="nameInput" class="form-label">」を 表示し
	「お名前:」を 表示し
	「</label>」を 一行表示し
	「<input type="text" name="name" placeholder="麻引堵太郎"><br>」を 一行表示し
	「<div id="nameHelp" class="form-text">(日本語でどうぞ)</div>」を 一行表示し
	「</div>」を 一行表示し
	「<div class="mb-3">」を 一行表示し
	「<label for="ageinput" class="form-label">」を 表示し
	「ご年齢:」を 表示し
	「</label>」を 一行表示し
	「<input type="text" name="age" placeholder="40"><br>」を 一行表示し
	BR
	「</div>」を 一行表示し
	「<INPUT TYPE="submit" name="send" VALUE="Send" class="btn btn-primary btn-lg">」を 一行表示し
	「  」を 表示し
	「<INPUT TYPE="reset" name="reset" VALUE="Clear" class="btn btn-outline-warning btn-lg"><br>」を 一行表示し

	「</FORM>」を 一行表示する。

formのサブミット側のCGIにも、CSSデータ1と2にCSSへのリンクパスを設定しています。

cgilib\sample\test-form-submit.src
メインとは
	「<link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.min.css" />」を CSSデータ1に 入れ
	「<link rel="stylesheet" href="/css/site.css" />」を CSSデータ2に 入れ
	「フォームのテスト(フォームの受け取り)」で htmlヘッダを出力し

	H3中央開始 「フォームデータを受け取りました」を 表示し H3終り
	BR
	BR

Mind 修正アプリのコンパイル

Mind8

C:\developments\vscode\mind9\cgilib>mind sample\test-form obj\cgilib


日本語プログラミング言語 Mind Version 8.07 for Windows
          Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. c:\pmind\bin\mindexcgi.exe --> sample\test-form.cgi

C:\developments\vscode\mind9\cgilib>mind sample\test-form-submit obj\cgilib  

日本語プログラミング言語 Mind Version 8.07 for Windows
          Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. c:\pmind\bin\mindexcgi.exe --> sample\test-form-submit.cgi

IIS配下のcgiフォルダに上記cgiファイルに対応した中間コードファイルmcoをコピーします。

Webサーバー設定

IISの導入オプション状態とアプリケーションプールの状態はこちらの記事をご参照ください。

実行開始

正常動作しました!:joy:

「フォームのテスト」cgi/test-form.cgi
IIS10mindcgicss.jpg

「フォームの受け取り」cgi/test-form-submit.cgi
IIS10mindcgicss2.jpg

おわりに

いかがでしたでしょうか?:relaxed:なにかの役にたてば幸いです。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?