我刚开始自己摸索着学MFC,网上看了孙鑫的视频,然后自己照着视频建工程,抄代码,但是抄下来编译一堆错误,主要的就是LPCTSTR这个数据类型的,提示和char*不兼容,然后但凡是字符串全都是红线!!!我是完全跟着他的步骤来的,只是他用的工具VC6.0,但是我用的是VS2010,我就觉得是不是配置有问题。然后我就下了工程包直接转换打开(用VS2010直接打开VC6.0的工程),这次倒是没有很多红线了,可是还是没法编译执行,有两个error:
错误 1 error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用 D:\...\WinMain\LIBCMTD.lib(crt0.obj) WinMain错误 2 error LNK1120: 1 个无法解析的外部命令 D:\...\WinMain\Debug\WinMain.exe 1 1 WinMain求解释啊~~~~!!!

解决方案 »

  1.   

    第一个问题 在项目属性的CharSet那选择用Use Multi-Byte Character Set而不是默认的 Use Unicode Character Set 或者把所有的字符串用_T()包起来,比如 _T("123")
      

  2.   


    红线是不见了,可是也是一堆error,代号跟帖子里面我用VS2010直接转换打开VC6.0工程的一样,全都是error LNK2019
      

  3.   

    vc6默认多字节版本,vc2010默认unicode,区别就在这里。
      

  4.   

    我已经改过来了,但是还是有这两个error:错误 1 error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用 D:\...\WinMain\LIBCMTD.lib(crt0.obj) WinMain错误 2 error LNK1120: 1 个无法解析的外部命令 D:\...\WinMain\Debug\WinMain.exe 1 1 WinMain
      

  5.   

    没main函数,你这个是有WinMain函数的 还是 有main函数没编译?
      

  6.   

    现在的问题是你工程建的有问题。你建的是win32 application
    写的代码却是console application
      

  7.   

    解决方案有二种:
    1 、将main函数改为Winmain函数2、 打开[Project] --> [Settings] --> 选择"Link"属性页,
    在Project Options中将/subsystem:windows改成/subsytem:console
      

  8.   

    工程建错了,你建的是win32 console application,入口函数main/wmain
    你应该建一个Win32 application,入口函数是WinMain/wWinMain
      

  9.   

    把需要填入字符串的地方如:AfxMessageBox("OK");用AfxMessageBox(_T("OK"));替换掉就OK了!VS2005和VS2008都这样!