文字列で2と10を比較すると、10のほうが小さいと判定されます。リストボックスなどにこんな風に出るといわれたことありませんか? 1 10 2 こんな感じ。lstrcmpやCompareStringといったAPIでは先頭の文字で判断しちゃうからこうなるんでしょうね。で、あまりにも不便だという声が多かったのか、Windows 7/Windows Server 2008 R2ではCompareString(Ex)に一つフラグ(SORT_DIGITSASNUMBERS)が追加されました。 CompareStringEx function (Windows) CompareString function (Windows) これを指定してほんとに2が10よりも小さいと判定されるのか、こんなコードで実験してみましょう。 #define WINVER 0x602 #include <windows.h>