このページは、私が思いついた時に(だから毎日ではない)、思 いついたことを(だからコンピュータだけの話ではない)、思いついたなりに (だから日本語むちゃくちゃ)頑張って綴るページです。
MyDirTree.vbs 1: REM Option Explicit 2: 3: Sub PrintFolderList( Lv, FolderPath ) 4: If oFS.FolderExists( FolderPath ) = True Then 5: Set oDir = oFS.GetFolder( FolderPath ) 6: For Each oFolder in oDir.SubFolders 7: WScript.Echo Space( Lv*2 ) & oFolder.Name 8: Call PrintFolderList( Lv+1, oFolder.Path ) 9: Next 10: End If 11: End Sub 12: 13: Set oArgs = WScript.Arguments 14: 15: If oArgs.Count < 1 Then 16: DirName = "." 17: Else 18: DirName = oArgs(0) 19: End If 20: 21: Set oFS = CreateObject( "Scripting.FileSystemObject" ) 22: If oFS.FolderExists( DirName ) = True Then 23: Call PrintFolderList( 0, DirName ) 24: Else 25: WScript.Echo DirName & " : フォルダが見つかりません。" 26: End If
ちなみに動作確認は WinXP SP3 + QuickTime 7.6.6 + QTConverter 1.3.0 + 着もと v5.0.0.2 で行っております。以前は 動画変換君で 3gp ファイルを作成していたのですが、最新の QuickTime だと動画変換君がうまく 動かないようなので、今回から QTConverter に乗り換えました。あと、 RealPlayer SP についてくる RealPlayer Converter でも 3gp ファイルは作成できるのですが、着もとで形式が違うと言 って怒られます。理由はよくわかりません。3gp ファイルもいろんな種類があ るということなのでしょう。それから、調子に乗って多くのファイルを携帯電 話に download すると、あとでパケット代で泣くことになるので注意しましょ う(笑)
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
てなことになっています。ここで、「_tWinMain」ってなんだ?これまでの 話では「WinMain」か「wWinMain」のどちらかだということじゃなかったのか、 ということになるわけです。ちなみにこれは VC++ 2010 Express の場合で、 バージョンが違う又は設定が違えば異なる場合もあります。当方の場合、第1 回メモ時点では VC++ 2008 Express を使っていましたが、その後 Win7 に乗り 換えた際に VC++ 2010 Express に変更しております。確か VC++ 2008 Express で install 直後だと _tWinMain じゃなかったような記憶が...で、この「 _tWinMain」は一体何かというと、実は「tchar.h」の中で以下のように定義さ れています。
tchar.h より抜粋 *Purpose: * Definitions for generic international functions, mostly defines * which map string/formatted-io/ctype functions to char, wchar_t, or * MBCS versions. To be used for compatibility between single-byte, * multi-byte and Unicode text models. #ifdef _UNICODE #define _tmain wmain #define _tWinMain wWinMain #else /* ndef _UNICODE */ #define _tmain main #define _tWinMain WinMain #endif /* _UNICODE */
目的の部分を意訳して簡潔にすると、「multi-byte と Unicode との互換 性確保」ということで、_tWinMain は _UNICODE が定義してある場合には wWinMain に、してない場合には WinMain となるわけです。まあ「過去」( multi-byte)を考えた場合の意義は認めますが、「現在」及び「将来」を考え ると文字コードとしては Unicode が default でしょうから何の意味もない気 がします。というわけで、以後のメモにおいては tchar.h は使用しない、 wWinMain を使うという方針で行きたいと思います。と言いつつ、とりあえず 前回のサンプルプログラム No.5b を tchar.h を使用した場合として書き換え てみましょう。
サンプルプログラム No.6 1: // ファイル名 : sample006.cpp 2: #include <windows.h> 3: #include <tchar.h> 4: 5: int WINAPI _tWinMain( HINSTANCE hCurInst, HINSTANCE hPrevInst, 6: LPTSTR lpsCmdLine, int iCmdShow ) 7: { 8: MessageBox( NULL, _TEXT("_tWinMain 関数"), _TEXT("_tWinMain"), MB_OK ); 9: return 0; 10: } コンパイル結果 [C:\src] cl sample006.cpp user32.lib /link /out:multi.exe Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. sample006.cpp Microsoft (R) Incremental Linker Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. /out:sample006.exe /out:multi.exe sample006.obj user32.lib [C:\src] cl /D "UNICODE" /D "_UNICODE" sample006.cpp \ user32.lib /link /out:unicode.exe Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. sample006.cpp Microsoft (R) Incremental Linker Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. /out:sample006.exe /out:unicode.exe sample006.obj user32.lib [C:\src] dir multi.exe ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 009A-4699 です C:\src のディレクトリ 2010/07/21 00:21 32,256 multi.exe 1 個のファイル 32,256 バイト 0 個のディレクトリ 184,371,261,440 バイトの空き領域 [C:\src] dir unicode.exe ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 009A-4699 です C:\src のディレクトリ 2010/07/21 00:11 31,744 unicode.exe 1 個のファイル 31,744 バイト 0 個のディレクトリ 184,371,195,904 バイトの空き領域 [C:\src]
ファイルサイズが Unicode バージョンのほうが若干小さいですね。 実行結果 [ PNG, 13KB ] を見比べても、 少なくとも私には差異がないように見えました。Win95/98 とかで動かせば違 いがわかるのでしょうか?
コンポーネント | 評価についての詳細 | サブスコア |
---|---|---|
プロセッサ | 1秒あたりの計算 | 7.3 |
メモリ (RAM) | 1秒あたりのメモリ操作 | 7.3 |
グラフィックス | Windows Aeroのデスクトップ パフォーマンス | 5.2 |
ゲーム用グラフィックス | 3Dビジネスおよびゲーム グラフィックス パフォーマンス | 6.1 |
プライマリ ハード ディスク | ディスクのデータ転送速度 | 5.9 |
しかし、やはり Win7 はものすごく使い勝手が悪い。なぜ explorer をこ んな風に変更したのか...それと、システム付属のペイントが非常に使い勝手 の悪いリボンインタフェースになっていた(只今 Office2007 で四苦八苦中) 。ものすごく期待していた XP mode も想像していたものとぜんぜん違うし... このためだけに CPU まで交換したのに(笑)あと、HDD の 100M をシステム予 約として領域確保された。これはいったい何に使うつもりなんだろう?どちら にしてももう戻れない、使って慣れますか...