<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Programming</title><link>http://blogs.wankuma.com/tyappi/category/1073.aspx</link><description>いろんなの</description><managingEditor>ちゃっぴ (tyappi@wankuma.com)</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>C/C++ の将来性 その 2</title><link>http://blogs.wankuma.com/tyappi/archive/2008/09/01/154906.aspx</link><pubDate>Mon, 01 Sep 2008 04:11:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/09/01/154906.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/154906.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/09/01/154906.aspx#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/154906.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/154906.aspx</trackback:ping><description>&lt;p&gt;&lt;A href="http://blogs.wankuma.com/tyappi/archive/2008/08/31/154858.aspx"&gt;C/C++ の将来性&lt;/a&gt; の続き&lt;/p&gt;
&lt;p&gt;多くの人から指摘されましたが、C/C++ はここ数十年では絶対に無くならないと思います。というのは絶対に必須な用途があるからです。&lt;/p&gt;
&lt;p&gt;ただ、現在ではそういった用途以外でも利用されていることが多いのではないでしょうか？&lt;/p&gt;
&lt;p&gt;正直、そういった用途では C/C++&amp;nbsp; の未来は暗いと思います。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ipa.go.jp/security/awareness/vendor/programmingv2/clanguage.html"&gt;C/C++がもたらす問題&lt;/a&gt; こういった問題があるので。&lt;/p&gt;
&lt;p&gt;では、C/C++ の未来は暗いか？自分が発言した内容と矛盾しているようですが、一部のできる人にとって道は明るいかもしれません。&lt;/p&gt;
&lt;p&gt;利用者は現在より一層減るでしょうけど、C/C++ programmer の価値は一層高まると思います。限定的な用途となりますが、C/C++ の問題点が一般的に認識されればど素人に扱わせるなんてこと無くなるでしょうから。&lt;br&gt;# 半ば以上、期待が含まれていることは否めませんが。&lt;/p&gt;
&lt;p&gt;それから、必要も無いのに C/C++ で coding することもできれば避けるべきではないかと思います。今後一層 C/C++ programmer で問題なく coding できる人は減るでしょうから、保守で問題を生じる可能性がより一層高まると思われます。同時に費用面で問題が生じるでしょうし。&lt;/p&gt;
&lt;p&gt;今後一層 C/C++ を扱う開発は減ってくる流れは強ますでしょう。そういう意味では、C/C++ は大衆受けする機能を盛り込むのではなく、一般的な開発者では扱えない機能をどんどん盛り込むことにこそ未来があるんじゃないかと思います。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/154906.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>C/C++ の将来性</title><link>http://blogs.wankuma.com/tyappi/archive/2008/08/31/154858.aspx</link><pubDate>Sun, 31 Aug 2008 23:16:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/08/31/154858.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/154858.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/08/31/154858.aspx#Feedback</comments><slash:comments>27</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/154858.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/154858.aspx</trackback:ping><description>&lt;P&gt;&lt;A href="http://www.wankuma.com/seminar/20080830yokohama1/Default.aspx"&gt;わんくま同盟 横浜勉強会 #1&lt;/A&gt; で話題に上ったこと。&lt;/P&gt;
&lt;P&gt;ちゃんと理解していないオイラが書くのもなんですが、やっぱり将来性がないと思う。&lt;BR&gt;# 御大すみません。&lt;/P&gt;
&lt;P&gt;多くの人が C/C++ は複雑すぎるというのが理由としてあげていましたが、もっと深刻な問題として security の問題があると思います。&lt;/P&gt;
&lt;P&gt;多くの人がご存じのとおり、C/C++ で coding すると buffer overflow の問題を避けて通れません。このことを完璧に理解して、かつ対策を完璧に実践できるのであれば問題はありませんが、この手の問題に完璧はありません。&lt;/P&gt;
&lt;P&gt;このことは現時点で最も脆弱性に気を使っていると思われる &lt;A href="http://www.microsoft.com/ja/jp/default.aspx"&gt;Microsoft&lt;/A&gt; でも脆弱性が無くならないことが証明していると思われます。&lt;/P&gt;
&lt;P&gt;知らない人も結構いるでしょうけど、&lt;A href="http://www.microsoft.com/ja/jp/default.aspx"&gt;Microsoft&lt;/A&gt; は &lt;A href="http://www.microsoft.com/mscorp/twc/default.mspx"&gt;Trustworthy Computing&lt;/A&gt; の一環として &lt;A href="http://msdn.microsoft.com/en-us/library/ms995349.aspx"&gt;SDL: Security Development Lifecycle&lt;/A&gt; を取り入れていますので、現状では security に関して一歩先に進んでいます。それでも、ご存知のとおり深刻な脆弱性は無くなっていません。&lt;BR&gt;# Check-in するときに security に問題のある code を弾くことをやっているのはすごいですね。&lt;BR&gt;# ぜひ、一般でも扱えるように展開してもらいたいものです。&lt;/P&gt;
&lt;P&gt;私は基本的に software を開発する立場ではなく、software を扱う立場ですが、意識の差はあるにしろ少しでも脆弱性が少ない software を扱いたいというのは software を扱う者の共通した願望でしょう。&lt;/P&gt;
&lt;P&gt;ということで、performance や機能の問題で C/C++ が必須とされる場合を除き、C#, VB, JAVA 等の memory 管理を自動で勝手にやってくれる言語で書いて欲しいと思っています。&lt;/P&gt;
&lt;P&gt;ぶっちゃけ、C/C++ で全く脆弱性の存在しない code を書くのは非常に難しいです。ということで、C/C++ で書くのは本当にどうしようもない場合に限って欲しいなぁというのが願望です。&lt;/P&gt;
&lt;P&gt;間違っても、programmer 一年目のど素人とかには絶対に手を出して欲しくないです。扱うなら下記を熟読し、完璧に理解した上で数年みっちり修業し、しかるべき code review を実施した上で release して欲しいものです。&lt;/P&gt;&lt;IFRAME style="WIDTH: 120px; HEIGHT: 240px" marginWidth=0 marginHeight=0 src="http://rcm-jp.amazon.co.jp/e/cm?t=tyappi-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=4756148239&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" frameBorder=0 scrolling=no&gt;&lt;/IFRAME&gt;
&lt;P&gt;C/C++ 扱う上で気にしなければならない security の問題点が説明されています。また、software の内部動作を理解する上でも役に立つでしょう。&lt;/P&gt;&lt;IFRAME style="WIDTH: 120px; HEIGHT: 240px" marginWidth=0 marginHeight=0 src="http://rcm-jp.amazon.co.jp/e/cm?t=tyappi-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=4891004460&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" frameBorder=0 scrolling=no&gt;&lt;/IFRAME&gt;&lt;IFRAME style="WIDTH: 120px; HEIGHT: 240px" marginWidth=0 marginHeight=0 src="http://rcm-jp.amazon.co.jp/e/cm?t=tyappi-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=4891004479&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" frameBorder=0 scrolling=no&gt;&lt;/IFRAME&gt;
&lt;P&gt;Windows platform を扱うなら絶対に読んで欲しい本。Coding の問題点を指摘する書籍は他にもいろいろありますが、coding 以外の設計等で脆弱性を局所化することを説明している書籍は少ないのでぜひ一読すべき。&lt;BR&gt;# ただし、個人的にはちょっと問題に思える部分があるので鵜呑みにしない方がいいと思われます。もっとも、それを差し引いても概念を理解するためには非常に役立ちます。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/154858.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>VB 暗黙の型変換</title><link>http://blogs.wankuma.com/tyappi/archive/2008/06/12/143094.aspx</link><pubDate>Thu, 12 Jun 2008 12:33:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/06/12/143094.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/143094.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/06/12/143094.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/143094.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/143094.aspx</trackback:ping><description>&lt;P&gt;ネタ元: &lt;A href="http://blogs.wankuma.com/episteme/archive/2008/06/11/142822.aspx"&gt;VBがどうにも...&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;個人的には、暗黙の型変換はあっても問題無いと思います。ただし、型を全く意識しなくてよいというのは違うんじゃないかと。&lt;/P&gt;
&lt;P&gt;VB.NET には当然型がありますし、VB 6.0 でも VBScript でも内部形式として型はありますね。これを全く意識しないようでは思わぬ bug を作りこんでしまいます。省略できるから憶えなくてもよいわけではなく、この場合は問題ないから省略できると学習しなければまずいでしょう。これは VB に限った話ではなく、多くの script 言語を扱う場合も同様です。&lt;/P&gt;
&lt;P&gt;で、暗黙の型変換について。暗黙の型変換があるのはかまわないですが、そのこときちんと documents に書いて欲しいですね。&lt;/P&gt;
&lt;P&gt;VB.NET の reference では下記で説明されています。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/ja-jp/library/hcb26cc8.aspx"&gt;Visual Basic における型変換&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/ja-jp/library/k1e94s7e.aspx"&gt;拡大変換と縮小変換&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/ja-jp/library/kca3w8x6.aspx"&gt;暗黙の型変換と明示的な型変換&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/ja-jp/library/7w0kt7t7.aspx"&gt;変換時の値の変化&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/ja-jp/library/t6hxk86b.aspx"&gt;文字列とその他の型との変換&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/ja-jp/library/x53d8wxa.aspx"&gt;方法 : Visual Basic でオブジェクトを別の型に変換する&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/ja-jp/library/tbatye4h.aspx"&gt;配列の変換&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;ぶっちゃけ、わかりやすいものでは無いと思いますし、説明が非常に不十分だと思います。Visual Basic を扱う人の対象として本職の programmer 以外を想定していますので、もう少しわかりやすく書かないとダメだと思いますが。&lt;/P&gt;
&lt;P&gt;個人的には、型の組み合わせによる変換表が最低限必要だと思うんですが。&lt;/P&gt;
&lt;P&gt;Integer + Long = Long みたいな。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/ja-jp/library/k1e94s7e.aspx"&gt;拡大変換と縮小変換&lt;/A&gt;&amp;nbsp;に一応変換表らしきものはありますが、これではすぐにわかりませんよね。&lt;/P&gt;
&lt;P&gt;VB 6.0 のときもそうですけど、ここら辺もう少しちゃんと解説してもらいたいものです。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/143094.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>Junction が倒せない</title><link>http://blogs.wankuma.com/tyappi/archive/2008/06/07/142173.aspx</link><pubDate>Sat, 07 Jun 2008 16:31:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/06/07/142173.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/142173.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/06/07/142173.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/142173.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/142173.aspx</trackback:ping><description>&lt;P&gt;Scripting.FileSystemObject の DeleteFolder method で junction を削除しようとしたんですが。 &lt;/P&gt;
&lt;P&gt;書き込めませんだってさ！&lt;/P&gt;
&lt;P&gt;&amp;nbsp;DeleteFile も Scripting.Folder class の Delete method もちろん NG。 &lt;/P&gt;
&lt;P&gt;さてどうやって消したもんかな。。。&lt;/P&gt;
&lt;P&gt;一応 rmdir command は利きますが。。。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/142173.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>PowerShell での Enumeration</title><link>http://blogs.wankuma.com/tyappi/archive/2008/05/23/139018.aspx</link><pubDate>Fri, 23 May 2008 02:53:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/05/23/139018.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/139018.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/05/23/139018.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/139018.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/139018.aspx</trackback:ping><description>&lt;p&gt;めちゃくちゃ気持ち悪いんですけど。&lt;/p&gt; &lt;pre class="Code"&gt;&lt;code&gt;function WriteEventEntry(
	  [System.String] $strMessage
	, [System.Diagnostics.EventLogEntryType] $logType = 'Error')
{
	Set-Variable -Name 'strSource' -Value 'Test' -Option 'Constant';
	Set-Variable -Name 'strLogName' -Value 'Application' -Option 'Constant';
	
	$eventlog = New-Object `
		-TypeName 'System.Diagnostics.EventLog' `
		-ArgumentList $strLogName;
	$eventlog.Source = $strSource;
	$eventlog.WriteEntry($strMessage, $logType);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;こんな関数書いたんですが、なんで下記のようによびださなければならないの？&lt;/p&gt;
&lt;pre class="Code"&gt;&lt;code&gt;WriteEventEntry 'Message' 'Information'&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;こうゆう呼び出しできるようにしてほしいんですけど&lt;/p&gt;
&lt;pre class="Code"&gt;&lt;code&gt;WriteEventEntry 'Message' [System.Diagnostics.EventLogEntryType]::Information&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;なんで、文字列で指定するの？&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/139018.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>Windows での folder path 指定の問題点</title><link>http://blogs.wankuma.com/tyappi/archive/2008/05/10/137154.aspx</link><pubDate>Sat, 10 May 2008 14:39:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/05/10/137154.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/137154.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/05/10/137154.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/137154.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/137154.aspx</trackback:ping><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;ネタ元: &lt;a href="http://bbs.wankuma.com/index.cgi?mode=al2&amp;amp;namber=18170"&gt;SHFileOperation関数について&lt;/a&gt;&lt;/p&gt; &lt;p&gt;UNIX では path で direcotry を明示的に指定するためにこのような表記をします。&lt;/p&gt; &lt;p&gt;/dir1/dir2/&lt;/p&gt; &lt;p&gt;最後に '/' をつけるのがミソですね。Windows ではどうでしょう？&lt;/p&gt; &lt;p&gt;この表記方法が使える場合もあるし、使えない場合もある。扱う API によってまちまちです。&lt;/p&gt; &lt;p&gt;例えば、ネタ元の &lt;a href="http://msdn.microsoft.com/en-us/library/bb762164.aspx"&gt;SHFileOperation&lt;/a&gt; function。これ、&lt;a href="http://msdn.microsoft.com/en-us/library/bb759795.aspx"&gt;SHFILEOPSTRUCT&lt;/a&gt; structure の pTo に "C:\Folder1\Folder2\" のような感じで指定して copy を行うと&lt;/p&gt; &lt;p&gt;&lt;a href="http://tyappi.wankuma.com/images/Windowsfolderpath_CDDB/InvalidPathDialog.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="153" alt="Invalid Path Dialog" src="http://tyappi.wankuma.com/images/Windowsfolderpath_CDDB/InvalidPathDialog_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;ダメだってさ。。。orz&lt;/p&gt; &lt;p&gt;ちなみにこの path 指定方法は絶対に利用できないわけではなく、一部の API や command では利用可能だったりします。たとえば、&lt;a href="http://technet2.microsoft.com/WindowsServer/ja/library/edb837cc-e0db-4673-8c79-1a085cb3692c1041.mspx?mfr=true"&gt;XCOPY&lt;/a&gt;。こちらは "C:\Folder1\Folder2\" のような指定をするべき仕様になっていて、省略する場合には "/i" switch を指定するのが正しい方法です。&lt;/p&gt; &lt;p&gt;しかしまぁ。統一感の無いこと。。。Path の仕様があいまいなんで、それを利用する application を作成するときにめちゃくちゃ苦労します。とはいえ、これ確か MS-DOS の頃からのしがらみなんですよね。。。&lt;/p&gt; &lt;p&gt;こういうところが随所に見られるので Windows 嫌いという人もまた多いんじゃないでしょうか？&lt;/p&gt; &lt;p&gt;現状では、こちらを抜本的に見直すのは互換性の問題があるので不可能だと思いますが、願わくば新しいものを作る時には直していただきたいんですよね。&lt;/p&gt; &lt;p&gt;と思って、&lt;a href="http://msdn.microsoft.com/ja-jp/library/default.aspx"&gt;MSDN Library&lt;/a&gt; 覗いてみると Windows Vista では、&lt;a href="http://msdn.microsoft.com/en-us/library/bb762164.aspx"&gt;SHFileOperation&lt;/a&gt; function が &lt;a href="http://msdn.microsoft.com/en-us/library/bb775771.aspx"&gt;IFileOperation&lt;/a&gt; Interface に置き換わっているらしい。調査してみるか。。。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/137154.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>WOW64 を使って VC++ 2008 で作成した 32bit application を実行するには 32bit 版の CRT が必要</title><link>http://blogs.wankuma.com/tyappi/archive/2008/04/29/135709.aspx</link><pubDate>Tue, 29 Apr 2008 15:33:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/04/29/135709.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/135709.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/04/29/135709.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/135709.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/135709.aspx</trackback:ping><description>&lt;P&gt;Visual Studio 2008 で C++ を使い作成した application を実行するには、CRT (C RunTime Library) が必要になります。ということで下記を install。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=bd2a6171-e2d6-4230-b809-9a8d7548c1b6&amp;amp;DisplayLang=ja"&gt;Microsoft Visual C++ 2008 再頒布可能パッケージ (x64)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;で、実行したところ system event log に CRT&amp;nbsp;が見つからないとの&amp;nbsp;error が。Compile option ちゃんと確認してみたら、32bit で compile していた。。。orz&lt;/P&gt;
&lt;P&gt;WOW64 (Windows on Windows 64) を使って 32bit application を動かすわけだからよく考えれば当然 32bit 用の CRT が必要になるわけで。&lt;/P&gt;
&lt;P&gt;ということで下記を install。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&amp;amp;DisplayLang=ja"&gt;Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;無事動作しました。&lt;/P&gt;
&lt;P&gt;x64 の OS を使っている場合には、x64 版だけでなく場合によっては x86 版も install しておくほうが良いという教訓でした。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/135709.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>GetLogicalProcessorInformation</title><link>http://blogs.wankuma.com/tyappi/archive/2008/04/29/135702.aspx</link><pubDate>Tue, 29 Apr 2008 14:45:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/04/29/135702.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/135702.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/04/29/135702.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/135702.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/135702.aspx</trackback:ping><description>&lt;P&gt;Windows Server 2003 から CPU の情報を取得する関数として &lt;A href="http://msdn2.microsoft.com/en-us/library/ms683194.aspx"&gt;GetLogicalProcessorInformation&lt;/A&gt; function が導入されました。ちなみに Windows XP でも Service Pack 3 を適用すれば利用可能です。&lt;/P&gt;
&lt;P&gt;名前に logical (論理) とついていますが、この function を利用して physical processor 数を取得することができます。&lt;/P&gt;
&lt;P&gt;ただし、Windows Server 2003 環境では注意が必要です。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.microsoft.com/kb/932370/"&gt;[KB932370] The number of physical hyperthreading-enabled processors or the number of physical multicore processors is incorrectly reported in Windows Server 2003&lt;/A&gt; 
&lt;P&gt;こちらで説明されているように Windows Server 2003 環境では physical processor 数を正確に取得できないことがあります。 
&lt;P&gt;試しに Windows Server 2003 Enterprise x64 Edition Service Pack 2 で MSDN の sample code を実行したところ、下記結果が返ってきました。 
&lt;P&gt;Core 2 Duo E6600 1 個搭載&amp;nbsp; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Number of NUMA nodes: 1&lt;BR&gt;Number of cores: 1&lt;BR&gt;Number of physical packages: 0&lt;BR&gt;Number of caches: 3&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;解消方法としては、&lt;A href="http://support.microsoft.com/kb/932370/"&gt;KB932370&lt;/A&gt; で提供されている hotfix を適用することになります。この hotfix は kernel module を変更し、この問題の修正だけでなく、他の kernel に修正も含まれていることに注意してください。Kernel に対する変更であるため、hotfix に問題が含まれる場合甚大な被害を被る可能性があります。置き換える対象の file version を注意深く確認し、この hotfix を適用することによって発生する既知の不具合がないか確認したほうがよいでしょう。 
&lt;P&gt;なお、この hotfix を適用すると &lt;A href="http://msdn2.microsoft.com/en-us/library/ms683194.aspx"&gt;GetLogicalProcessorInformation&lt;/A&gt; function だけではなく、WMI &lt;A href="http://msdn2.microsoft.com/en-us/library/aa394373.aspx"&gt;Win32_Processor&lt;/A&gt; class および &lt;A href="http://msdn2.microsoft.com/en-us/library/aa394102.aspx"&gt;Win32_ComputerSystem&lt;/A&gt; class に関する変更も行われています。&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=2 width=400 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH&gt;Class&lt;/TH&gt;
&lt;TH&gt;Property&lt;/TH&gt;
&lt;TH&gt;Before&lt;/TH&gt;
&lt;TH&gt;After&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa394102.aspx"&gt;Win32_ComputerSystem&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;NumberOfProcessors&lt;/TD&gt;
&lt;TD&gt;Retun number of logical processors &lt;/TD&gt;
&lt;TD&gt;Retun number of physical processors&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;NumberOfLogicalProcessors&lt;/TD&gt;
&lt;TD&gt;N/A&lt;/TD&gt;
&lt;TD&gt;Available&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa394373.aspx"&gt;Win32_Processor&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;NumberOfCores&lt;/TD&gt;
&lt;TD&gt;N/A&lt;/TD&gt;
&lt;TD&gt;Available&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;NumberOfLogicalProcessors&lt;/TD&gt;
&lt;TD&gt;N/A&lt;/TD&gt;
&lt;TD&gt;Available&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;これらの変更は Windows Vista 以降の OS ではもちろん、Windows XP Service Pack 3 でも行われています。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/135702.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>Hungarian notation (ハンガリアン 表記法)</title><link>http://blogs.wankuma.com/tyappi/archive/2008/04/19/133902.aspx</link><pubDate>Sat, 19 Apr 2008 20:26:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/04/19/133902.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/133902.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/04/19/133902.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/133902.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/133902.aspx</trackback:ping><description>&lt;P&gt;忌み嫌っている人も多いようですが、私の個人的な意見。嫌いじゃありません。&lt;/P&gt;
&lt;P&gt;多くの人は "System Hungarian" は絶対に使うべきではない、"Application Hungarian" を利用すべきと言いますがどんな状態でもそれが正しいでしょうか？&lt;/P&gt;
&lt;P&gt;確かに C# のような完全に type safety が保証されている言語では、"Application Hungarian" で問題が無い場合も多いでしょう。&lt;/P&gt;
&lt;P&gt;ただし、C# のような完全に type safety が保証されている言語でも cast 前後でそれぞれ変数に割り当てるとなると "Application Hungarian" ではきつくなりますね。扱うものは同じですから、頭に付くか後ろに付くかもしくは真ん中に含めるかどうでもいいですが、型を変数名に含めないといけないでしょうから。まあ、そういう例外を除き "System Hungarian" を積極的に利用する利点が無いわけですから、この場合にはあえて規約として強制すべきではないというのには同意です。&lt;/P&gt;
&lt;P&gt;ですが、type safety が保証されていない言語ではどうでしょう？ "System Hungarian" 強制したほうがいい場合がありませんか？&lt;/P&gt;
&lt;P&gt;例えば、dynamic な言語。多くの dynamic 言語では型の存在が隠蔽されています。そういう言語を扱う場合、明確に型を識別するため "System Hungarian" を利用してやりたくなります。&lt;/P&gt;
&lt;P&gt;ちなみに VBS や C を使うときにはガリガリの "System Hungarian" 利用しています。C# で書くときはやらないけど。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/133902.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ちゃっぴ (tyappi@wankuma.com)</dc:creator><title>scanf って教える必要ある？(初心者に教えるときでも最初から脆弱性が発生しない方法を教えよう)</title><link>http://blogs.wankuma.com/tyappi/archive/2008/03/29/130441.aspx</link><pubDate>Sat, 29 Mar 2008 22:30:00 GMT</pubDate><guid>http://blogs.wankuma.com/tyappi/archive/2008/03/29/130441.aspx</guid><wfw:comment>http://blogs.wankuma.com/tyappi/comments/130441.aspx</wfw:comment><comments>http://blogs.wankuma.com/tyappi/archive/2008/03/29/130441.aspx#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tyappi/comments/commentRss/130441.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tyappi/services/trackbacks/130441.aspx</trackback:ping><description>&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://blogs.wankuma.com/jitta/archive/2008/03/28/130332.aspx"&gt;これは、ちょっと&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://blogs.wankuma.com/episteme/archive/2008/03/29/130391.aspx"&gt;これは、かなり&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;上記で話題になった記事ですけど、他のも覗いてみた。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20368158,00.htm"&gt;C/C++のデータ型と書式を知る：入力の書式&lt;/A&gt;&lt;/P&gt;
&lt;BLOCKQUOTE cite=http://builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20368158,00.htm&gt;&lt;PRE class=code&gt;&lt;CODE&gt;    #include &amp;lt;STDIO.H&amp;gt;
      ..........
    char a[11];            /* 半角10文字分の文字列を保持する変数(配列) */
    scanf( "%s", a );      /* 変数aに文字列を入力 */
    printf( "%s\n", a );   /* 変数aの値を出力 */
&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;おい！ scanf って教える必要がある？教えるなら、fgets でしょう。&lt;/P&gt;&lt;PRE class=code&gt;&lt;CODE&gt; char buffer[11];
 fgets(buffer, sizeof(buffer), stdin);
 printf("%s\n", buffer);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;慣れている人ならば、sscanf も加えるかもね。&lt;/P&gt;&lt;PRE class=code&gt;&lt;CODE&gt; char buffer1[11];
 char buffer2[11];
 fgets(buffer1, sizeof(buffer1), stdin);
 sscanf(buffer1, "%s", buffer2);
 printf("%s\n", buffer2);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;なぜ scanf を使わないか？というと buffer overflow する可能性があるから。元記事の sample 11文字以上の入力があった場合には、buffer overflow します。&lt;BR&gt;これ見て C 覚えようとしている人どうなるんだろ？Bug の発生だけでなく脆弱性にもなるんですけど。&lt;BR&gt;初心者にわかりやすく解説したいというのはわかります。でも、脆弱性が絡む部分は後から教えるではダメだと思う。脆弱性が発生する原理は後追いで解説するのはかまわないとしても、脆弱性を生む要因を教える時に脆弱性を回避する方法を一緒に教えないと。もしくは脆弱性が発生しない方法のみ教える。&lt;/P&gt;
&lt;P&gt;どうしても scanf を使って簡単に説明したいというなら、書式指定文字で size を制限する。&lt;/P&gt;&lt;PRE class=code&gt;&lt;CODE&gt; char buffer[11];
 scanf("%10s", buffer);
 printf("%s\n", buffer);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;次の page に書式指定文字の解説が書いてあるんですが、説明ないですねぇ。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/tyappi/aggbug/130441.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>