error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 _tmainCRTStartup 中被引用解决方法

error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
#include <iostream>   
#include <string>   
#include <list>   
using namespace std;   
void PrintIt(list<int> n)   
{   
    for(list<int>::iterator iter=n.begin(); iter!=n.end(); ++iter)   
      cout<<*iter<<" ";//用迭代器进行输出循环    
    }   
int main()   
{   
    list<int> listn1,listn2;   
    //给listn1,listn2初始化    
    listn1.push_back(123);   
    listn1.push_back(0);   
    listn1.push_back(34);   
    listn1.push_back(1123);   
    //now listn1:123,0,34,1123    
    listn2.push_back(100);   
    listn2.push_back(12);   
    //now listn2:12,100   
    listn1.sort();   
    listn2.sort();   
    //给listn1和listn2排序   
    //now listn1:0,34,123,1123         listn2:12,100    
    PrintIt(listn1);   
    cout<<endl;   
    PrintIt(listn2);   
    listn1.merge(listn2);   
    //合并两个排序列表后,listn1:0,12,34,100,123,1123    
    cout<<endl;   
    PrintIt(listn1);   
    cin.get();   
}   

1>MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
1>E:\VS2010\CPP chengxu\STl\Debug\STl.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>
1>生成失败。

刚刚接触,准备用VS2010调试俩程序 ,老是出错呀!!!TAT!!
上面的错误我按照百度上的一些方法试过,虽不懂原理,但我按照步骤就是解决不了啊。求大神指导!   
不懂的靠复制的人不要瞎搀和哦~
我对winmm.lib啥的都不是很懂,也不知道自己有没有
------解决方案--------------------
引用:
Quote: 引用:

把应用程序类型改为控制台类型。 

Go to "Linker settings -> System". Change the field "Subsystem" from "Windows" to "Console". Done.

为什么改个类型就可以了,这两个有什么区别么   你能讲讲么  或是推荐我看看什么书能知道的

你写的程序人口是被CRT(c 运行时库)调用的, 不同类型的应用程序, CRT期待不同的函数名,不同的原型。 

学习一下使用VC的工程向导生成, 不要自己事后修改。事后修改比较麻烦而且容易出错。 

------解决方案--------------------
引用:
Quote: 引用:

把应用程序类型改为控制台类型。 

Go to "Linker settings -> System". Change the field "Subsystem" from "Windows" to "Console". Done.

为什么改个类型就可以了,这两个有什么区别么   你能讲讲么  或是推荐我看看什么书能知道的

Win32项目不为自动为你创建那个黑色的控制台窗口