IM tyring來得到這個工作:使用Visual Studio 2008速成怎麼寫的Unicode的hello world用C在Windows
#define UNICODE
#define _UNICODE
#include <wchar.h>
int main()
{
wprintf(L"Hello World!\n");
wprintf(L"£안, 蠀, ☃!\n");
return 0;
}
(在Windows XP上,如果它的事項)。 當我從命令提示符下運行這個(開始爲CMD/U這是爲了使Unicode的?)我得到這個:
C:\dev\unicodevs\unicodevs\Debug>unicodevs.exe Hello World! ┬ú∞ C:\dev\unicodevs\unicodevs\Debug>
我估計是因爲終端不具備的字體可以預期渲染那些。 但什麼讓我的是,即使我嘗試這個辦法:
C:\dev\unicodevs\unicodevs\Debug>cmd /u /c "unicodevs.exe > output.txt"
產生的(即使它的UTF-8編碼)文件的樣子:
Hello World! 壓
源文件本身被定義爲Unicode (以不含BOM的UTF-8編碼)。 編譯器輸出時的建築:
1>------ Rebuild All started: Project: unicodevs, Configuration: Debug Win32 ------ 1>Deleting intermediate and output files for project 'unicodevs', configuration 'Debug|Win32' 1>Compiling... 1>main.c 1>.\main.c(1) : warning C4005: 'UNICODE' : macro redefinition 1> command-line arguments : see previous definition of 'UNICODE' 1>.\main.c(2) : warning C4005: '_UNICODE' : macro redefinition 1> command-line arguments : see previous definition of '_UNICODE' 1>Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\wchar.h 1>Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\crtdefs.h 1>Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\sal.h 1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\sal.h(108) : warning C4001: nonstandard extension 'single line comment' was used 1>Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\crtassem.h 1>Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\vadefs.h 1>Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\swprintf.inl 1>Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\wtime.inl 1>Linking... 1>Embedding manifest... 1>Creating browse information file... 1>Microsoft Browse Information Maintenance Utility Version 9.00.30729 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>Build log was saved at "file://c:\dev\unicodevs\unicodevs\unicodevs\Debug\BuildLog.htm" 1>unicodevs - 0 error(s), 3 warning(s) ========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
什麼我做錯了任何想法? ST上的類似問題(如這個:unicode hello world for C?)似乎是指* nix構建 - 據我瞭解,setlocale()不適用於windows。
我也嘗試使用code :: blocks/mingw gcc構建,但得到了相同的結果。