VC2005 C++入门记

_tmain、main 、wmain and wWinmain 区别

main()WINDOWS的控制台程序(32BIT)或DOS程序(16BIT,    

WinMain()WINDOWSGUI程序,    

wmain()UNICODE版本的main(),  

 _tmain()是个宏,如果是UNICODE则他是wmain()否则他是main()

1、  mainC程序的函数,_tmainmain为了支持unicode所使用的main的別名

2、  _tmain的定义在<tchar.h>可以找到,#define _tmain main,所以要加#i nclude <tchar.h>才能用。

3、  因此_tmain compile后仍为main,所以都可以执行

另外,wmain也是main的另一個别名,是为了支持二个字节的语言环境
int main( int argc[ , char *argv[ ] [, char *envp[ ] ] ] );
wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )
int _tmain(int argc, _TCHAR* argv[])

 

 

 

1)      win32控制台应用程序

文件〉新建〉项目à Visual C++——〉win32——〉win32控制台应用程序〉控制台应用程序〉预编译头〉完成〉新建win32.cpp.

<1>//Basic IOProgram

// winconsole.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"

#include <iostream>

using std::cin;

using std::cout;

 

int _tmain(int argc, _TCHAR* argv[])

{

    cout<<"Hello World./n";

    getchar();

    return 0;

}

F7编译,F5运行。

<2> //托换代码和非托管代码混合编程

// managed.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"

#using <mscorlib.dll> // 为了使用Console::WriteLine方法

#include <stdio.h> // 为了使用printf

using namespace System;

// 声明非托管代码

#pragma unmanaged

void print(char *msg)

{

    printf("%s/n", msg);

}

// 切换回托换代码

#pragma managed

int _tmain(int argc, _TCHAR* argv[])

{

    // 调用托管的方法输出到控制台

    Console::WriteLine(L"Hello world from managed method");

    // 使用标准输出

    print("hello world from unmanaged method");

    getchar();

    return 0;

}

注意: 项目属性〉配置属性〉常规〉公共语言运行库支持〉公共语言运行库支持(/clr

 

原文地址:https://www.cnblogs.com/wenrenhua08/p/3993615.html