Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between wmain and main?

So I have some class starting with

#include <wchar.h>
#include <stdlib.h>

and there is a wmain function .

How is it different from main function i usually use in my C/C++ programs?

like image 696
Rella Avatar asked Mar 13 '10 10:03

Rella


3 Answers

"If your code adheres to the Unicode programming model, you can use the wide-character version of main, which is wmain."

http://msdn.microsoft.com/en-us/library/aa299386%28VS.60%29.aspx

main( int argc, char *argv[ ], char *envp[ ] )
{
program-statements
}

wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )
{
program-statements
}
like image 192
Corey Avatar answered Oct 31 '22 21:10

Corey


The difference between main and wmain is the type used to represent the arguments to the program. The main function uses normal char while wmain uses wchar_t which can accept unicode values

  • http://msdn.microsoft.com/en-us/library/aa299386(VS.60).aspx
like image 21
JaredPar Avatar answered Oct 31 '22 21:10

JaredPar


main is the normal program entry point in c & c++ and is passed the command line in single byte characters. wmain is an alternative that is used in many windows programs for unicode programs where it instead gets passed the command line as wide 16 bit unicode characters.

I believe it's a windows extension for unicode programs.

like image 2
jcoder Avatar answered Oct 31 '22 21:10

jcoder