VC++

VC++2005 express edition

インストールしてみた。 Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う これだけだとPlatform SDKのヘルプが統合されない。 VC++2005からヘルプを起動して、「連結ヘルプ」を検索する。「Visual Studio 連結ヘルプ コレクション…

_beginthreadと_beginthreadexの違い

前から気になっていたのだが、_beginthreadの戻り値をWaitForSingleObjectで待とうとすると失敗する。 _beginthreadと_beginthreadexの戻り値は、両方とも「スレッドを指すハンドルを返す」となっていて、HANDLE型にキャストして使うことができる。 MSDNの説…

XP上のVC6

Windows XP上のVC6だとデバッガがしばしば固まるのだが、どうもこれはテキストサービス(ctfmon)のせいらしい。というわけで無効にしたらIME2002が(タスクバーに入らないので)常に表示されるようになったが、まあそのくらいはしょうがないか。ctfmon(テ…

generic text programming

「Windows NTは内部がUnicode」と言うけれど、NT4.0より後に発売されたVC6でも、Unicodeのサポートはいまいちだったりする。 だめな点1 MFCプロジェクトでUnicodeにするには、自分でプリプロセッサの定義から_MBCSを外して_UNICODEを追加し、エントリポイン…

VC++6.0 fixes

Fixes for Library Bugs in VC++ V5.0/V6.0(P.J.Plauger大先生の会社の修正情報; http://www.dinkumware.com/vc_fixes.html)の、VC6.0 SP6での状況。結果から言うと、とりあえず、 差し替え → deque、xstring、xtree パッチ → list、vector、strftime.c で…

cross platform development

クロスプラットフォームというか、プラットフォーム依存というか、そういうことをよく扱っているのでメモ。基本的にC/C++。 メモ プリプロセッサは、未定義の識別子を0として扱う。 従って、#if __GNUC__ >= 3はGCC3以上として使えるが、GCC2系かどうかを#if…