在VS2005中用ifstream打开含有中文路径的文件时出错,怎么解决

在VS2005中用ifstream打开含有中文路径的文件时出错,如何解决
具体能用代码告诉我如何解决么
void   Read(string   path)
{
        ifstream   file;
        file.open(.........);
}
file.open( "C:\\测试.txt ",       ios::binary       |       ios::in);      
    上面的open代码执行以后,file.Is_Open()一直都是为假!      
    但是把文件名改成C:\\A.txt以后就没有问题了!

------解决方案--------------------
这样吧
ifstream file;
setlocale(LC_ALL, " ");
file.open( "C:\\测试 新建 文本文档.txt ", ios::binary | ios::in);
if(!file)
{
cout < < "file open failed ";
return 1;
}
setlocale(LC_ALL, "C ");
string shz;
while(getline(file,shz)) cout < <shz < <endl;

------解决方案--------------------
解决办法是在 "C:\\测试 新建 文本文档.txt "前加上L,变成L "C:\\测试 新建 文本文档.txt "。因为Visual Studio 2005默认的是使用Unicode字符集。
你也可以在工程设置里更改默认设置,那样就不用上面所说的步骤了。
不过既然微软推荐你用Unicode,那么自有它的道理。果真如此,需要做出改变的就是我们自己了。
------解决方案--------------------

哈哈,你在工程里面设定一下 使用多字节字符集 就ok
------解决方案--------------------
_T()
使用unicode就可以了