Emacs で DxLib を使ったWindowプログラムをコンパイルする
最近はWindowsでDxLibを用いたWindowsプログラミングもやっている。
コンパイルにはbccを用いている。
VC++があまり好きではないという理由からだ。
(というか、もはやMicrosoftが好きではないのだが)
なので、開発環境にはBcc Developerを使用している。
しかし、当然それはEmacsではない。
XkeyEmacsでカーソルキーに移動は容易になったが、
しかし
- auto-completeを始めとした補完
- yasnippetを始めとしたテンプレート挿入
等、どうにも我慢できなくなったので、それならEmacsで開きながらコンパイルして実行できれば、とりあえずいいのではないかと考えた。
結論から言うと、以下のようなコマンドでコンパイル出来る。
(defun bcc32() (interactive) (let* ( (files-name (read-string "function's files: " "main")) (output-dir (read-string "output-dir: " "debug")) (command-string (format "bcc32 -W -3 -O1 -w- -AT -pc -H- -k -b -v -y -n%s -IC:\\borland\\directx\\DxLib_BCC\\bcc %s" output-dir files-name)) ) (message "%s\n%s" command-string (shell-command-to-string command-string)) ))
前提条件として、同一ディレクトリ内にあり、そのいずれかを現在バッファに開いている状態のとき、このコマンドを呼ぶ。
→ -IオプションはDxLib.hのあるディレクトリを指定する。
Windowsでいうとろの"\"は"\\"で表現するので注意。
Bccに追加すべきファイルとか書いてあるものを参考にする。
これを実行すると、まず、コンパイルするためのファイル名を聞きに来る。
例えば、main.cpp と function.cpp がある場合、この2つを指定する。
例:
main function
関数の実装が書かれていないファイルは、指定する必要はない。
また、output-dirはアウトプットするディレクトリで、この関数では新規作成しないので、自分で作っておく必要がある。
ファイル名の一番はじめに書いた方の名前で、.exeが作られるはずなので、これを実行すると、windowプログラミングが実行される。
尚、このコマンドではDLLやコマンドプロンプトの実行ファイルは作れない。
これを足がかりにすれば、もっと快適に出来るはずだ。