Archive for 2月, 2008

Visual Studio のプロジェクト設定に SUBSYSTEM の設定項目がありますね。
こいつを設定することで、エントリポイントが変わるわけですよ。
これをうまく使えば、 WinMain, main の切り替えが楽にできるのです。
具体的には

int main(int argc, char** argv)

を常に使い、プロジェクトは Win32プロジェクト を選択。

/SUBSYSTEM:CONSOLE が設定されているときは、通常通り呼べば良い。
/SUBSYSTEM:WINDOWS が設定されているときは、WinMain() から定義した関数である main() を呼べば良いわけです。
WinMain の方をライブラリ側で用意し、ライブラリ使用者は常に main を使うなどすると便利かな。

C++:
  1. int main(int argc, char** argv)
  2. {
  3.     return 0;
  4. }
  5.  
  6. int APIENTRY WinMain(HINSTANCE instance, HINSTANCE prevInstance, LPSTR cmdParamarg, INT cmdShow)
  7. {
  8.     return main(__argc, __argv);
  9. }

表題の本が出たので買ってきた。
内容はマニアックな読み物って感じ。小さいので電車のお供に。
ttp://www.amazon.co.jp/gp/product/4797344369

リンク先のアマゾンのイメージにはないんだけど、本の帯に脳汁とか書くあたりが流石えぴ先生。

CodeZine に、VS2008の新機能とかまとめてあったので眺めていたわけですが。
ttp://codezine.jp/a/article/aid/2184.aspx

インテリセンスの透明化とか結構便利かも。
あとは単体テストができるのがいいのかなぁ。(winunit とか cppunit とかあるからあんまり魅力ない
マルチプロセスでのコンパイルも VS2005 でもできるし。
.net Framework のバージョン選択できるのは便利かなー。

Vista SP1 に導入されるこの機能。
ロードされているdllを差し替えるような感じだと思うんだけど、これって大丈夫なのだろうか。
[ソース]
ttp://technet2.microsoft.com/WindowsVista/en/library/90a564b9-34af-4a6b-937f-324e1862244b1033.mspx?mfr=true

スパイとかウィルスが心配なわけですが、vista たんなら大丈夫なのかな。