RCSharp とは?
C# の実行ファイルからリソースを抽出し、Visual C++ で利用可能な .rc ファイルを出力するツール。主に、Visual Sutdio の Express 利用者向けのツールです。
Visual Studio Express Edition では、.rc ファイルをリソースエディタで編集できないため、テキスト編集する必要があります。これはちょっとメンドクサイですよね。
C# なら、Express Edition でもグラフィカルに UI を編集できます。なので、これを利用してやろうじゃないかと思って RCSharp を作りました。(あとは C# の勉強がてら)
使い方
1. C#プロジェクトでデザイン
まずは、もととなるリソースを C# のプロジェクトで作成します。適当にプロジェクトを作成し、フォームを編集してください。
編集できたらコンパイルして .exe ファイルを出力します。ここでは TestForm.exe とします。
2. RCSharp を使って変換
次に、rcsharp を使って変換します。先ほど作成した TestForm.exe を rcsharp.exe に D&D すると、TestForm.exe のあるディレクトリに
TestForm.rc と TestForm_resource.h が出力されます。また、リソースに含まれる画像も出力されます。
変換は以上です。
出力先はコマンドライン引数で変更可能です。また、リソースIDの指定もできるようになっています。
options -o<output_directory> : Specifies the output directory. -rh<filename> : Specifies the output resource.h filename. -idd<number> : First IDD(IDR, IDI, IDB) Number. -idc<number> : First IDC Number. -ids<number> : First IDS Number. -idm<number> : First IDM Number.
3. 出力されたファイルを使ってビルド
最後に、rcsharp から出力したリソースを使って Visual C++ プロジェクトをビルドします。TestForm はこのようになりました。
※ タブコントロールの中身は未対応
※ テキストコントロールのデフォルト文字列も未対応
※ その他いろいろ未対応
既知の不具合
不具合というか気をつけなければいけないことで、リッチテキストがある場合に LoadLibrary("riched20.dll") を呼ぶ必要があります。今後のバージョンアップで初期化コードの自動生成などにも対応したいとは思っていますが、
現状はリソース以外のコード生成はできませんのでご注意ください。
最後に
世の中には、.rc ファイルをグラフィカルに直接編集できるフリーソフトもあります。RCSharp はまだ開発途中で、対応していないコントロールも多数あります。
あまり実用的なツールとは言い難いですが、技術的に面白いことができたので今回リリースしました。
今後は、対応コントロールを増やしたり、できたらイベントやデフォルト設定なども自動生成できるようにしてみたいです。
0 件のコメント:
コメントを投稿