極楽せきゅあブログ

ときどきセキュリティ

Unicode対応

初めてVisual C++ 2010 Expressってのを使ってみてるんだけど、単純なプログラムが思い通り動かなくてちょっとびっくり。
ただ単に文字列を画面に表示させるだけのプログラムなんですけどね。

printf("%s",argv[1]);

とかやると、入力された文字列のうち一文字だけしか出てこない。Helloとか入れてもHしか表示されないんですよね。
なんでかなーって思っていろいろ調べてみたら、こんなドキュメントに行き当たりました。いやーネットは良いところですね。こんな良いネタに行き当たれるなんて。
http://yy2.sakura.ne.jp/006_vccp_unicode/vcpp_unicode.html
詳しくは上のドキュメントを参照いただきたいのですが、要するにVisual C++ 2010(ドキュメントでは2008のこととして触れられていますが、手元で試したのは2010)の環境では、プロジェクトであてがわれるマクロの動きを知らないと、単純なところでもハマってしまう、ということなんですね。で、Unicode対応でそういう動きになったということが解説されています。
なるほどねー。
で、ふと思ったんだけど、Windowsってずっと以前からUnicodeになってるんだけど、Windows上でサンダーバード使ってメル出している某MLで暴れていたあの人は、そんなOSのこと許容できるんだろうか(笑)?ま、メール出すこと自体にはそんなこと関係ないから良いんだろうけどねヽ(´ー`)ノ