なんかC++ localeって小難しいんだな。
俺は手持ちにVC8.0の環境が無いので確認できんのだが、
↓みたいな方法でどうだ?

loc1はクラシックロケール(Cロケール)をベースにcodecvt<>だけを
日本語ロケールのものに置き換えてるんで、
setlocale(LC_CTYPE, "japanese") に相当すると思う。


#include <iostream>
#include <locale>

main()
{
    std::locale loc1(std::locale::classic(), "japanese", std::locale::ctype);
    std::locale loc2("japanese");

    std::cout.imbue(loc1);
    std::cout << "日本語 " <<10000 << "円" << std::endl;

    std::cout.imbue(loc2);
    std::cout << "日本語 " <<10000 << "円" << std::endl;
}