主要只收到第一个参数字母

Cen*_*noc 6 c++ windows unicode

int _tmain(int argc, char** argv)  
    {  
      FILE* file1=fopen(argv[1],"r");  
      FILE* file2=fopen(argv[2],"w");  
    }
Run Code Online (Sandbox Code Playgroud)

似乎只收到了论据的第一个字母......我不明白为什么!

std::cout<<"Opening "<<strlen(argv[1])<<" and writing to "<<strlen(argv[2])<<std::endl;
Run Code Online (Sandbox Code Playgroud)

输出1和1无论如何.(在MSVC 2010中)

EFr*_*aim 8

当你用set 编译时,不是char这样.wchar_tUNICODE

它编译为wmain.链接器只是没有注意到有不同的签名,因为它是"导出C"函数,它的名称不包含其参数类型.

所以它应该是int _tmain(int argc,TCHAR**argv)

转换为char很棘手,并不总是正确的 - Win32提供的函数只会正确转换当前的ANSI代码页.

如果你想在你的应用程序内部使用UTF-8,那么你必须在其他地方寻找转换器(例如在Boost中)