Home

VC++と使うには

BorlandC++と使う

TextPadの特徴

編集

正規表現

ドキュメントクラス

漢字コード変換

TextPad 4.6
パッチ

DDWinと使う

VC++7覚書

TextPadフォーラム

自己紹介など

e-Mail

Visual CとTextPad

VisualC++にはMicrosoft VisualStudioのIDE(統合環境)にエディターがついています。これはこれで巷のエディターもかなわない強力なエディターですが、やはり使い慣れた軽いエディターが使いたいものです。そもそもVisualStudioから実行するC++は起動時に相当なリソースを必要とするようで時間がかかります。
TextPadを使えば、コンパイルしたときにエラー先に飛ぶハイパージャンプを使用しながらエディターの上でのみでコンパイル作業ができます。ワークスペースを使えばVC++のプロジェクトファイルのように多くのファイルを一元管理できます。
それではTextPadを使用してVisualStudioのような統合環境を作ってみましょう。VisualStudio .NETも追加しました。




■VisualC++の設定

まずVisualC++コンパイラーの環境をセットします。通常の方法でVisualC++をインストールすると最後にVCVAR32.BATについてもメッセージが出てきます。これはVisualC++をコマンドラインで使用する場合にWindows95/98では環境設定をするためのバッチファイルを起動する必要があるという意味です。WindowsNTや2000では自動的に環境変数を設定してくれます。
VisualC++が必要とする環境変数は、

INCLUDE:インクルードファイルのパス
LIB:ライブラリーのパス
MSDevDir:VisualStudioのパス
path:実行ファイルのパス

です。
Win95/98の場合以下の一行をAUTOEXEC.BATに付け加えてください。

"C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"

.NETでは、

"C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\VSVARS32.BAT"

にあるようです。

■TextPadの設定

TextPadからはRunコマンドで直接コマンドラインを記述してコンパイラーを呼び出せますし、自分でMakefileを使用したければ
コマンドラインにNMAKEを記述すればよいのですが、TextPadにはコマンドを登録する機能があります。
加えて、VisualC++ Ver6.0からはワークスペースをMakeFile代わりに使用できるのでMakefileを作らなくてもVisualStudioのウイザードで作ったワークスペースをそのまま流用できます。

どうしてもMakeでなければいやだ!

□コマンドの追加

TextPadの設定->環境設定からツールマネージャーを選択します。
追加ボタンを押して、プログラムの追加を選択します。



Visual StudioのMSDEV.COMを選択します。(MSDEV.EXEではないのでご注意)
一般的にパス名は以下の一行でしょう。

C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.COM

Visual Studio .NETでは、

C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.com

です。 適用ボタンを押します。するとMsdevがツールに登録されます。同時にショートカットキーにはじめてのツールならばCtrl+1、二番目のツールならばCtrl+2が割り当てられます。

□コマンドパラメーターの設定

ツールマネージャーの"+"をクリックすると今度はMsdevが現れますのでこれを選択します。


ここで確認と変更が必要な項目をあげて見ます。

  • コマンド:先ほど選択したMsDev.com(または、devenv.com)が入力されているはずです。
  • 引数:デフォルトでは現在編集中のファイル名を表す $File が入力されています。しかしこれですとMakeFileのパラメーターでありMsDevではないので以下のいずれかの2通りの変更をします。MsDevではウイザードで入力したプロジェクトの名前を使用します,

さらにプロジェクトの名前をビルドだけするので/MAKEパラメーターを使用します。詳細はMSDNヘルプでキーワードをMsDevとして探してください。

  1. TextPadのワークスペースをそのプロジェクト用に作りワークスペースの名前を使用する。
    $WspBaseName.dsp /MAKE
  2. ファイルのあるディレクトリー名をプロジェクト名と一致させておきディレクトリーの名前を使用する。
    $FileDir.dsp /MAKE

.NETでは、ソリューションとプロジェクトとそのコンフィギュレーションを指定する必要があります。

  1. TextPadのワークスペースをそのプロジェクトとソリューション用に作りワークスペースの名前を使用する。
    ここではreleaseバージョンをビルドするための指示が必要です。 $WspBaseName.sln /build release /project $WspBaseName.vcproj
  2. ファイルのあるディレクトリー名をプロジェクト名と一致させておきディレクトリーの名前を使用する。
    $FileDir.sln /build release /project $FileDir.vcproj


これらのコマンドパラメーター引数は、環境設定のダイアログが表示されているときにヘルプをクリックして調べることができます。

もちろん、自分でMakefileが作れる方は、$Fileのまま、コマンドをNMAKEにすればそれだけで同じ結果となります。
Makefileを作るのにVisualStudioを使うかどうかの違いだけとなります。

  • 開始前にすべてのドキュメントを保存:これを忘れるとせっかく変更した内容を反映しないままコンパイルしてしまいますのでチェックしましょう。ただし、保存したくない場合もありますのでお好みに合わせてどうぞ。
  • 出力の取り込み:自動的にチェックされますが、これでコンパイラーやリンカーのエラーをTextPadに取り込みそこからエラー行にハイパージャンプできます。

出力に一致させる正規表現:これもデフォルトで大丈夫です。VisualC++のエラー出力にあわせています。
ここの意味は最初の括弧でない文字列をクラス1に括弧の中の数字0-9をクラス2に入れます。

^\([^(]+\)(\([0-9]+\)):

ハイパージャンプの割り当てを使用して、ファイル名を先のクラス1にジャンプ先の行をクラス2に割り当てます。
これで
d:\textpadjapan\codeconv\kanjiconv.h(3) : error C2144: 構文エラー : ';' が型 'void' の前に必要です。

このようなエラー行のファイル名と行番号をハイパージャンプに使用します。
これで準備できました。

■インクルードファイルの検索


さらに自分のインクルードファイルがある場合TextPadでは、
#include <myinclude.h>

のようにファイル名がある場所でコンテキストメニューを開くとそのファイルを開くメニューが現れます、しかしそのファイルが環境変数INCLUDEか、今編集しているファイルのあるディレクトリーにないと検索できないので、必要であればAUTOEXEC.BATに追加します。

INCLUDE=%INCLUDE%C:\Myinclude


■ビルド

TextPadでビルドしてみましょう。
まず、最初はVisual Studioでプロジェクトを作ります。
ここでは、Test.dspをウイザードで造ったことにしましょう。デバッグとリリースの二つの構成(ターゲット)ができます。
ここまでのTextPadの設定ではデフォルトのプロジェクトすなわち[現在の構成]で選択されたプロジェクトについてビルドされます。
ディレクトリーTestProjectのしたにTest.dspとTest.wspそれにText.cppやText.hなどがあることでしょう。
TextPadを立ち上げてTest.cppを読み込みます。続いてワークスペースを保存します。そのときのワークスペース名は
Test.twsのはずです。コンパイラーの引数に$WspBaseNameを使用していればショートカットキーまたはツールコマンドで
MsDevを選択するとビルドが始まります。

.NETでは、ソリューションのビルドから始める必要があります。

デフォルトのターゲットをビルドしています: Test - Win32 Debug
--------------------構成: Test - Win32 Debug--------------------
コンパイル中...
Test.cpp
d:\TestProject\Test.h(3) : error C2144: 構文エラー : ';' が型 'void' の前に必要です。
d:\TestProject\Test.h(3) : error C2501: 'x' : 識別名を宣言するのに、型が指定されていません。
d:\TestProject\Test.h(3) : fatal error C1004: 予期せぬ EOF が検出されました。
cl.exe の実行エラー

CodeConv.exe - エラー 3、警告 0

終了コード3で終了しました

どうやらエラーで終了しました。ここで、VisualStudioではF4キーを押すと最初のエラー行に飛んでくれます。TextPadもF4キーを押してください。エラーのあったファイルをロードして必要な行にジャンプしてくれます。エラーのある行をダブルクリックしてもOkです。

さて、プロジェクトの構成、リソースエディット、ステップ実行、ブレークポイントなどVisualStudioで提供される機能はまだまだ多くありますが、煩雑で行き来が多いコンパイラと編集がすべてエディターのみで可能となりました。TextPadの多くの機能はVisulaStudioのエディターと重なりますが、ドキュメントセレクターや保存したあとでも可能なUndo、軽快なコンパイルなどヘビーユーザーに求められる多くの機能を加えることができるようになります。

TextPadのツールマネージャーのセットアップが面倒な方のために、レジストリーからVisualC++用の設定部分を抜き出しました。ファイルを解凍してそのままダブルクリックしてレジストリーに読み込んでください。ツールの一番にMsdevが設定されます。

ダウンロード:TextPadVisualC.zip
ダウンロード:TextPadVisualStudio.NET.zip

奥付

実際、私はコーディングはTextPad上で、デバッグはVisualStudioでと二つ立ち上げていることがほとんどです。
しばしばTextPadのみで作業します。なんせVisualStudioは重い。.NETは、いろいろとおまけがついてファンシーですが、C++のプログラムを構築するものから見ると邪魔者がずいぶん増えました。いっそうのことNMAKEに行く人が増えるのではないでしょうか。