彩りの大地 ソフトウェアのお話

ぺぇじへっどらいん

サクラエディタ×C++ Complier

概要

サクラエディタでbccを外部実行してみてコンパイルしてみようという試みです。 bcpadの時と違ってコンパイルの時にRunしないため、動作確認する場合はコンパイルした実行ファイルを直接実行しなければなりません。

やりかた概要

必要な下準備は以下。bcpadのところで一通り説明している。
・サクラエディタのインストール
・コンパイラの入手
・環境変数Pathにbinを設定する
ということはつまり、bcpadいらないじゃんwって話になりますが、 bcpadの時と違ってコンパイルの時にRunしない問題があるので、 コンパイルと同時にRunして実行結果も見てみたい場合は素直にbcpadを導入しましょう。
※本当はサクラエディタでもコンパイルと同時にRunして実行結果も見られる気がするが……

実際にやってみる

下準備までできていれば後は実行して確かめてみるのみ。
ツールから「外部コマンド実行(X)」を実行するだけ。
bcc自体が「bcc ソースファイル名」のコマンドラインで実行する形式のため、以下を実行すればよい。

bcc32c $F

※実行するソースプログラムはbcpadのところで作った「hello_world.c」を開いている状態で実行すること。
※「bcc32x」のほうを使用する場合は「bcc32x $F」とする。
「hello_world.c」が置いてあるところに「hello_world.exe」があればコンパイル成功。
似たようなことは他のエディタでも出来るハズ。

実行しない!?

「hello_world.exe」を実行したのに何も起きないと思った方、実はそれ正解です。 一瞬だけ何かが表示されたような気がする方、それも正解です。
というのも、「hello_world.exe」ではprintfを実行したが、特に止める動作がなければそのままプログラムを終了してしまっているため、 動作確認をとるのが難しくなっているのです。
bcpadからのRunの場合、bcpad側の設定でプログラム終了時には何らかのキーの入力待ちが発生するような仕組みとなっているため、 動作確認がとれるようになっています。 これが地味にbcpadのありがたい(と言えるかもしれない)部分。

ということで、実行ファイルを直接実行した際にも動作の一旦停止を求めてソースを変えてみることに。

#include <stdio.h>

main()
{
    int wk;
    printf("hello world!!\n");
    scanf("%d", &wk);
    
    return 0;
}

コマンドラインでうまく「hello world!!」が表示されれば成功、 そして、scanfによるユーザからの入力待ちが発生する。 例によって適当な値を入力してEnterを押すか、Ctrl + C で強制終了することで抜けられます。

正直なところ、bcpadを入れてもいいという場合なら、 これをするのならサクラエディタで編集して直接コンパイルするよりも、 サクラエディタで編集したものをbcpadに標準出力を渡してbcpad側でRunしたほうがいいような気がします。