2009-12-05

google ホリデーロゴ

何かの記念日に変更されるGoogleのロゴ。これまでの一覧がここで見られるようになったそうです。

いろんなロゴがあって、楽しいですね。

2009-10-31

エクスプローラでのwmvファイルの縮小版を表示しない

Windowエクスプローラでは、wmvファイルなどの動画があるとサムネイルを表示する。Vistaではこれが既定になっていて、フォルダを開くたびに非常に時間がかかって重い。解除する方法は以下。

フォルダオプションで、
  • "縮小版にファイルアイコンを表示する"
  • "常にアイコンを表示し、縮小版を表示しない"
にチェックを入れる。

2009-10-19

先日入れたVC++2005にWTLをインストール

WTL、実はあんまり使わないのだけど、一応インストール。

ここよりWTL81_9127.zipを持ってくる。あと日本語化のために、ここより、WTL81_9127_ja.zipをいただいてくる。

で、C:\Program Files\WTL81 あたりに解凍し、"C:\Program Files\WTL81\AppWiz\setup80x.js"を実行する。これで一応インストール完了。

ただし、このままだとコンパイルエラーが出るときがあるらしいので(PlatformSDKのATLが古いらしい)、以下のように修正する。(diffなんて使ったのは何年振りだろうか??)

%MSSdk%\Include\atl\atlwin.h
>> diff -c atlwin_ORG.h atlwin.h
>> diff -c atlwin_ORG.h atlwin.h
*** atlwin_ORG.h Fri Mar 03 23:19:14 2006
--- atlwin.h Tue Oct 20 09:52:40 2009
***************
*** 1750,1756 ****

// search for an empty one

! for(i = 0; i < m_aChainEntry.GetSize(); i++)
{
if(m_aChainEntry[i] == NULL)
{
--- 1750,1756 ----

// search for an empty one

! for(int i = 0; i < m_aChainEntry.GetSize(); i++)
{
if(m_aChainEntry[i] == NULL)
{
"int"を追加。

%MSSdk%\Include\atl\atlbase.h
>> diff -c atlbase_ORG.h atlbase.h
*** atlbase_ORG.h Fri Mar 03 23:19:12 2006
--- atlbase.h Mon Oct 19 15:26:45 2009
***************
*** 284,289 ****
--- 284,290 ----
};
#pragma pack(pop)

+ /* http://www.codeproject.com/KB/wtl/WTLExpress.aspx
PVOID __stdcall __AllocStdCallThunk(VOID);
VOID __stdcall __FreeStdCallThunk(PVOID);

***************
*** 291,296 ****
--- 292,301 ----
#define FreeStdCallThunk(p) __FreeStdCallThunk(p)

#pragma comment(lib, "atlthunk.lib")
+ */
+
+ #define AllocStdCallThunk() HeapAlloc(GetProcessHeap(), 0, sizeof(_stdcallthunk))
+ #define FreeStdCallThunk(p) HeapFree(GetProcessHeap(), 0, p)

#elif defined (_M_AMD64)
#pragma pack(push,2)

"PVOID ..."から"#pragma"までコメントアウトして、下2行を追加。

情報源は、ここ

2009-10-12

VC6で使っていたプロジェクトがVC2005でビルドできない。

以前 VC++6 で使用していたプロジェクトをVC++2005でビルドすると、以下のエラーが出るときがある。
.\main.rc(10) : fatal error RC1015: cannot open include file 'afxres.h'.

こんなときは、#include "afxres.h"とリソースファイル中で書かれている部分を以下のように変更する。
// #include "afxres.h"  // 削除
#include <windows.h> // 追加
#define IDC_STATIC -1 // 追加

2009-10-09

VistaのRWIN自動調整

Vistaを使っているとネットワークが遅くなることがある。VistaではRWINをレジストリで変更できないとのこと。自動調整が効いているからだ。

で、VistaのRWIN自動調整を無効にする方法
C:\> netsh interface tcp set global autotuninglevel=disabled

自動調整を有効にするには
C:\> netsh interface tcp set global autotuninglevel=normal

2009-09-27

pagefile.sysとhiberfil.sys

Vistaが時々重くなってきたので、Diskeeper2008をインストールしてデフラグをかけたのだけど、c:\pagefile.sysとc:\hiberfil.sysといった2GB超えのサイズのファイルの断片化が解消されない。。
というわけで、これらのファイルを一旦消す方法について調べました。
c:\pagefile.sys
  1. 「コントロールパネル」 ⇒ 「システムとメンテナンス」 ⇒ 「システム」 ⇒ 「システムの詳細設定」
  2. 「詳細設定」 ⇒ 「パフォーマンス」項目の「設定...」ボタンを押す ⇒ 「詳細設定」タブを開く ⇒ 「仮想メモリ」の項目にある「変更...」ボタンを押す
  3. 仮想メモリの設定で「ページングファイルなし」を選択

再起動を求められるので、再起動する。これでページングファイルを使用しない設定になる。ただし、Vistaの場合は、これだけではファイルは消されないようだ。そこでコマンドプロンプト(管理者として実行)から以下のコマンドで、ファイルを削除する。
> del /a:h c:\pagefile.sys

これでc:\pagefile.sysは削除される。
c:\hiberfil.sys
  1. ハイブリッドスリープの停止
    Vistaでは、ハイブリッドスリープもc:\hiberfil.sysを使用しているらしい。まずは、これを停止する。
    「コントロールパネル」 ⇒ 「システムとメンテナンス」 ⇒ 「電源オプション」 ⇒ 「プラン設定の変更」 ⇒ 「詳細な電源設定の変更」を表示。ツリー項目の「スリープ」 ⇒ 「ハイブリッドスリープを許可する」を「オフ」。
  2. 休止状態の削除
    このあと、休止状態を停止する必要があるが、Vistaではコントロールパネルに設定するところが見つからない。コマンドプロンプトから設定する必要があるようだ。
    コマンドプロンプト(管理者として実行)で以下のコマンドを入力する。
    > powercfg.exe /hibernate off

これで、c:\hiberfil.sysは削除される
復活させる場合は、
> powercfg.exe /hibernate on

Windows Vista を実行しているコンピュータ上で休止状態を無効にする方法および再度有効にする方法