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