スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

WTL用カスタムウィザードを作ってみる

私は開発にVisual Studio 2003 + WTLを使っているんですが、ウィザードから作成したプロジェクトが英語リソースだったり、要らないファイルがいっぱいあったりして、毎回毎回修正を行ってからコーディングに入っていました。
さすがにこれは面倒で、ちょっとしたテストを行いたいときなどに、始めるまでに時間を取られてしまうのは残念です。そこで今回、自分でカスタムウィザードを作ってみることにしました。(アイコン、しょぼい。)

mywtlwiz.jpg

方針としては、ATL/WTLアプリケーションウィザードで作成されるプロジェクトをベースにし、できるだけ簡単に、今後のWTL更新時にもうんざりしないようにあまり手間をかけずに作ることです。
さて、いざ作り始めようとしても知らないことばかりで、正直すぐにちょっぴり引きましたが、ヘルプやWTLのウィーザードを参考に頑張って進めました。もう一度作るときに忘れそうなのでメモとして残します。スクリプトのプリフィクス等はWTLのものを元にしてますので、特に気にしないようにします。(^^;

【元となるプロジェクトの作成】

(1)ATL/WTL Application Wizardでプロジェクトを作成し、自分好みのデフォルトとなるプロジェクトに修正する。
<例>
・プロジェクトの設定変更
・stdafx.hにヘッダーファイルを追加
・不要ファイルの削除、コードの修正
・リソースを日本語化

(2)ビルドできることを確認

【カスタムウィザードプロジェクトの作成】

(1)カスタムウィザードプロジェクト作成
カスタムウィザードで、「ユーザーインターフェース」のチェックを外してプロジェクトを作成。この時にVisual Studioのインストール先の「Vc7\vcprojects」フォルダに、このプロジェクトの名前で.vsdir、.vsz、.icoの3種類のファイルがコピーされる。これによって新しいプロジェクトを作る際のプロジェクトの種類に、作成したカスタムウィザードが表示されるようになる。これらのファイルはプロジェクトにも含まれており、編集時には自分でプロジェクト内のファイルを「Vc7\vcprojects」フォルダにコピーする。

(2).vszファイルの編集
パラメーターに「PROJECT_TEMPLATE_PATH」を追加し、「ABSOLUTE_PATH」と同じ値にしておけば、プロジェクト内のdefault.vcprojがテンプレートとして使用されるようになる。スクリプトコードでプロジェクト設定を定義するのは大変なのでこのようにしておく。

(3)Templates.infの編集
コピーしたいファイルはプロジェクトフォルダ下の「Templates」フォルダ下に格納し、このファイルにファイル名を記述する。

(4)default.jsの編集

<OnFinishの修正例>
プロジェクトの設定はdefault.vcprojのものを使用するので、AddConfigとAddFiltersの呼び出しはコメントアウトする。

<PchSettings関数内の修正例>
StdAfx.cppでプリコンパイル済みヘッダーを作成する設定にする。


var files = proj.Object.Files;
var fStdafx = files("StdAfx.cpp");

var config = fStdafx.FileConfigurations("Debug");
config.Tool.UsePrecompiledHeader = pchCreateUsingSpecific;

config = fStdafx.FileConfigurations("Release");
config.Tool.UsePrecompiledHeader = pchCreateUsingSpecific;


<GetTargetName関数内の修正例>
テンプレートに含まれるファイルの名前を必要に応じて置き換える。

var strTarget = strName;

var strResPath = "res\\";

if(strName == "MyWTLProject.exe.manifest")
{
  strTarget = strResPath + strProjectName + ".exe.manifest";
}

return strTarget;


この例ではマニフェストファイル名の一部をプロジェクト名に置き換えているが、マニフェストファイルの場合、リソースファイルから参照されているので、リソースファイル内の記述を[!output PROJECT_NAME].exe.manifestのようにしておく。

(5)default.vcprojの編集。元となるプロジェクトの.vcprojファイルを複製し、プロジェクトに固有と思われる部分を削除する。

<VisualStudioProject
  ProjectType="Visual C++"
  Version="7.10"
  Name="MyWTLProject"
  ProjectGUID="{4E3BF9D0-3F9E-4887-A2B9-645562EE5370}">



<VisualStudioProject
  ProjectType="Visual C++"
  Version="7.10">

に修正。

<File>タグの記述を含んでいるとエラーになるので削除する。(原因は不明だが、プロジェクトに含まれているファイルは、default.vcprojを元にプロジェクトが作成された時点ではコピーされていないためか?)


以上で、(たぶん)良かったと思います。(^^;
↓こんな感じのシンプルなプロジェクトになりました。

mywtlproj.jpg
関連記事

comment

Secret

カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
カテゴリー
最近の記事
最近のコメント
タグ

カメラ GH2 GH3 

ブログ内検索
月別アーカイブ
RSSフィード
プロフィール
●オンラインソフト作家。しかし長らく活動休止中。
ソフトウェア

●Dさんの長押しIME起動2
●IME+ (仮称)

・Dさんの長押しIME起動。
・Dさんの日本語じゃなきゃイヤン。
・Dさんの名前変更お手伝い。
・Dさんのダイヤルアップ接続お手伝い。
・DさんのWindows終了お手伝い。

・お忍びランチャー。
・お忍びリネーム。
・デジくいっくサーチ!
・Simple Remote
・計算王?

※過去の開発ソフトの一部はリンク先からダウンロードできます。

リンク
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。