If one would like to make his program being able to accept the arguments which is not English, the Unicode is requisite. That would make your software be more international. ( For me, it is instinct to use Chinese as file name and so forth.)
To use Unicode in windows, One could set your program as unicode in Visual Studio:
That your could use unicode in your code.
If your program arguments could be Chinese, the main should be the form:
int wmain(int argc, wchar_t *argv[])
in windows with unicode.
but, if you would like to hide console (for example, if you use Qt librarie with Visual Studio), the well-known solution :
#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
would not work.
there would be :
error LNK2001: unresolved external symbol _main
To solve it as valid is very tricky, that is :
#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:wmainCRTStartup")
To demostrate i, the code be :
#include <windows.h> #include <locale.h> #include <wchar.h> #ifndef _DEBUG #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:wmainCRTStartup") #endif int wmain(int argc, wchar_t *argv[]) { int k; k = 1; while(k < argc) { wchar_t bufferW[256]; memset(&bufferW[0], 0, 256*sizeof(wchar_t)); wcsncpy(&bufferW[0], argv[k], 256); #ifdef _DEBUG setlocale(LC_ALL, ""); wprintf(TEXT("%s\n"), &bufferW[0]); #else MessageBox(NULL, &bufferW[0], TEXT("參數"), MB_OK); #endif k++; }/*while*/ return 0; }/*wmain*/
and set the input argument as :
(Of course, do not forget set the character set as Unicode in the configuration properties -> General)
In the debug mode, the output would be in the console :
In the release mode, the console would be hidden, and the output be :
沒有留言:
張貼留言