...

.... Powered by Blogger.

日曜日, 1月 25, 2009

WTL8.0のAppWizardをVisual Studio 2008で使う


 WTL8.0のAppWizardを、Visual Studio 2008で利用するためのメモ。 どうやらWTL8.0には、Visual Studio 2008にAppWizardを追加するインストーラが付いていないらしい。 でも簡単な手順で動くことを確認できたので、その手順を少しばかり。

[前提]
  • Visual Studio 2008は、C:\Program Files\Microsoft Visual Studio 9.0 にインストール済み。
  • WTL8.0は、C:\Program Files\wtl8.0 にインストール済み。
[手順]
  1. C:\Program Files\wtl8.0\AppWiz\Files フォルダから、WTLAppWiz.vsz, WTLAppWiz.vsdir の2ファイルを、C:\Program Files\Microsoft Visual Studio 9.0\VC\vcprojects フォルダにコピーする。
  2. C:\Program Files\wtl8.0\AppWiz\Files フォルダから、HTML, Images, Scripts, Templates の4フォルダを、C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\ATL\WTL\WTLAppWiz フォルダにコピーする。
  3. コピーしたWTLAppWiz.vsz ファイルを開き、以下の2箇所を書き換える。

    VSWIZARD 7.0
    Wizard=VsWizard.VsWizardEngine.9.0
    Param="WIZARD_NAME = WTLAppWiz"
    Param="WIZARD_VERSION = 7.0"
    Param="RELATIVE_PATH = VCWizards\AppWiz\ATL"
    Param="FALLBACK_LCID = 1033"
以上で、プロジェクトの追加からウィザードを実行できるようになるはずです。

土曜日, 1月 10, 2009

アプリケーションフレームワークの選択で悩む


 久しぶりにWindowsのネイティブアプリケーションを組んでみようと思い立った。 Windowsのネイティブアプリを作るのは、7,8年ぶりになる。 このブランクは非常に大きいが、趣味で始める話なので気長に取り組むことにする。 どんなアプリを作ろうと思っているかは、アイディアが固まりきっていないので、まだ秘密です。

 とりあえずネイティブアプリなので、開発言語は実質C/C++に限定されてしまう。 C/C++でWindowsアプリを開発する場合、大きく分けて
  1. SDKだけで直接APIをガリガリ書く。
  2. MFCを利用する。
  3. WTLを利用する。
  4. QTなど、商用フレームワークを利用する。
と言う選択がある。 さすがにフレームワークを利用しないのは厳しいので、1は選択外として、2~4のどれを使うかで、アプリの作りが大きく変わってしまう。 それぞれ特徴があるようなので、私なりにポイントを簡単にまとめておく。
  • MFC
     古くからあるアプリケーションフレームワークだが、Microsoftが.netに力を入れ出してからは大きな更新されていないイメージがあった。 しかしVisual Studio 2008ではMFC9.0としてその機能が大きく拡張されており、最新のUIを用いたアプリケーション開発が可能になっている。 Microsoftからの情報提供や、Webでの具体的な解説も豊富にあるため、ほとんどの問題に対しての解決策を簡単に見つけることができるのが大きな利点。
     フレームワークの作りはM-VC、いわゆるDocument-View構造を採用しているが、その作りが分かり難い場合がある。 クラスライブラリとしての提供であるため、オブジェクトに不要なコードが含まれサイズが大きくなる傾向にある。 また、OpenMPなどへの対応をし難いため、最近のマルチコア/ハイパースレッディングに最適化することは難しい。

  • WTL
     以前はMicrosoftから提供されていたが、現在はオープンソースになって公開されているテンプレートライブラリ。 軽量/高速なアプリ開発ライブラリであるATLを拡張し、高度なUIを実現するために開発されている。 MicrosoftやWebにより情報を得ることはできるが、簡単な説明になっている場合が多く、具体的な問題にへの解説は不足しがち。 特に日本語での情報が少ないため、情報は英語で探すのが良い。
     フレームワークの作りはMFC同様に、Document-Viewを採用しているが、MFCとは異なり多重継承を利用しているため、シンプルな作りが可能になる。 また名前が表す通り、テンプレートでの提供であるため、コンパイル時に具象化されたクラスのみがオブジェクトにリンクされるため、コードサイズが小さくなる。

  • QTなど
     商用で提供されているものだけに、高度なUIの作成や独自のコントロールなど豊富な機能が多い。 また、Windows以外のOSにも対応しているため、移植性の高いコードを作成することが可能。 QTのように有名なもの(条件付きで無償利用できるもの)は、Webにも多くの情報があるが、やはり英語での情報入手が基本になる。 有償で利用する場合には、サポートを受けることが可能になるが、個人で利用するには敷居が高い。
     フレームワークの作りなどは、詳細を調べていないので言及できません…
 アプリの特性によってフレームワークの合う合わないがあると思うが、実装を頑張れば同じ機能を実現することは不可能ではない。 結局は、好み/馴れ/何を作りたいかによってフレームワークを選択すればよい。

 今回は、”スレッドプログラミング”、”シンプルな構造”、”Windowsネイティブ” なものを目指しているので、アプリケーションフレームワークはWTLを使うと決めた。 ついでに、標準ライブラリを補間するため、Boost c++を利用し、極力手間の掛かる実装をしない方向で進めてみることに。

日曜日, 12月 14, 2008

ESXiの管理コンソール


 VMWare ESXiには、標準のサービスコンソールが用意されていない。基本的に、VI ClientやRemote CLIで管理することになるが、監視を実現するにはちょっと不便だった。

 そこで提供されているのがVIMA。 ドキュメントには、サービスコンソールよりもセキュリティが高いので、ESXiだけでなくESXにもお勧めと書いてあると言う事は、サービスコンソールを十分に代替できると言う事か? サービスコンソールのスクリプトも、そのまま利用できるようなことも書いてあるし…。
 ちょっと触ってみた限りでは、標準ではそれほど多くの機能がある訳ではなさそうなので、独自の管理システムを作り上げたい向きには使えるような雰囲気ですね。

日曜日, 12月 07, 2008

Dell PowerEdge T105


 久しぶりに衝動買いに近い買い物をしてしまったけど、今のところ良い買い物だった思っている。

 購入の目的は、ファイルサーバ/実験環境を簡単に実現することだったので、VMWare ESXiを導入することは決めていた。 また、ファイルサーバのためにSAS 6/iRのRAIDカードも増設してあったので、ESXiのインストーラがSATAコントローラを認識しない件も影響を受けず、問題なくインストール完了!! と思いきや、ゲストOSを設定するときに、ホストのDVDドライブがリストに表示されず使うことができない。 VI ClientのConfiguration-Storage Adaptersの画面では、vmhba2にCDROMを認識しているのに…。
 使う上で特に問題では無いけど、すっきりしないので今後調査してみる予定だけど、既に解決方法を知っている人がいたら教えて下さい。

 とりあえずこのサーバ、FreeNAS、Solaris、Windows XP Pro はあっさり導入できて問題無く動作している。全くはまりポイントがないので、書くことはありません。

火曜日, 10月 21, 2008

メロペン・マキシビーム


 最近体調が悪く、点滴された抗生物質の名前です。名前が格好良かったので覚えていましたが、調べてみると結構新しい薬なんですね。確かに、以前から使っていた抗生物質が効かなくなってきてはいたんですけど。

 体内に飼っている菌にどんどん耐性が付きそうで、ちょっと怖い。

土曜日, 10月 04, 2008

ショートカットの実体のパス


ショートカットや、ネットワークドライブ経由で編集しているファイルの、本当のパスを知りたい時に使います。

例えば、”ネットワークドライブにマウントされている共有フォルダのファイルへのショートカット”があった場合。そのファイル/フォルダの実体を調べるのは、実際には難しくは無いが面倒くさい。そんな時に、そのファイル/フォルダをドロップすると、実体のパスがクリップボードに書き込まれると便利かなと言う意図で作成しました。

まあ、私の個人的なニーズで作ったものですので、これまた使えるシチュエーションは少ないと思いますけど。

--コードの公開をやめました。ニーズがあれば載せます。--

木曜日, 9月 25, 2008

その日のまえに


 「重松清」。この作家の名前は、数年前に知人から本をもらうことで初めて知った。書かれる内容は、ほとんどが誰もが経験するような日常のできごと。当事者であれば感じるであろう心の動きが繊細に表現されており、それだけに心に響くものが多い。

 『その日のまえに』は、死をテーマにした短編の集まりとなっている。一つ一つの物語は、”同級生を失う小学生”、”突然に友を失う子供”、”夫を失う妻”、”母を失う家族”など様々な視点から死というものを捉えている。そして、最後の3つの物語の中で、これらが緩く繋がりあって物語り全体が完成している。

 『きよしこ』、『流星ワゴン』など、この作家の心に響く作品を読んできた。その中でも、この『その日のまえに』は一番私の心に来るものがあった。日常をテーマにしているだけに、感じ方は人それぞれであると思うが、必ず心を動かされる部分があるのではないだろうか。

 単に悲しいだけでない。上手く言葉で表すことはできないが、心に浸みる良さがある、そんな作品。

土曜日, 9月 06, 2008

クリップボードのテキストに引用符を付ける


MUAによっては、クリップボードのデータをbodyに貼り付けるときに、引用符付きで貼る機能がありますが、私の利用しているものにはありません。少し不便に思っていたので、vbsを使って同じ機能を作りました。欲しい人は限定的だと思いますが…

--コードの公開をやめました。ニーズがあれば載せます。--