VS.NET 2003 と _MSC_VER

asm を使う必要が出てきたのですが、VS2005では インラインアセンブラが禁止されるということで、VS2003 と VS2005 でコードを切り替えようと思ったわけです。

ココで出てくるのが _MSC_VER マクロ。 VS2003 で _MSC_VER マクロに対してマウスカーソルをポイントすると 1300 と出てくる。じゃー

#if _MSC_VER <= 1300
〜
#endif

すりゃ問題ないよなー とか思ったらコードが通らない。何故?

http://ir9.jp/hd/hd060126_00.png
↑通らないコードと _MSC_VER



よくよく考えてみたら、VS2003 って VC7.1。 …調べると、VC7.1 == 1310。orz


なんだこの Microsoftのワナはああああーーーー!(涙

で、この記事書いてて思い出したこと。

VS2005の 64bit コンパイラで asm が禁止されただけで、32bit コンパイラじゃ禁止されてなかったはず……

WIN64 あたりで分岐させりゃ問題なかったような気がしてきたヨ… orz