vc中的使用技巧和常见错误(5)
问题4:关于工程类型的错误
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
答:
建了console工程,但是主函数写成了winmain,
Windows项目要使用Windows子系统, 而不是Console, 可以这样设置:
[Project] --> [Settings] --> 选择"Link"属性页,
在Project Options中将/subsystem:console改成/subsystem:windows
这样就把工程改该成了win32的工程,
如果要保留成console工程,只要把主函数改成main
问题5:关于工程类型的错误
提示:
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
答:
建了win32工程,但是主函数写成了main,
控制台项目要使用Console子系统, 而不是Windows, 设置:
[Project] --> [Settings] --> 选择"Link"属性页,
在Project Options中将/subsystem:windows改成/subsystem:console
这样就把工程改成了console工程
如果要保留win32工程,只要把主函数改成winmain
问题6 程序入口设置错误, 提示:
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口
:
[Project] --> [Settings] --> 选择"C/C++"属性页,
在Category中选择Output,
再在Entry-point symbol中填入wWinMainCRTStartup, 即可
问题7:LNK2001错误,如error LNK2001: unresolved external symbol ………………
一般这种错误是没有把需要的某些lib加到你的工程里面
这里举个例子吧
error LNK2001: unresolved external symbol __imp__waveOutGetNumDevs@0
看到这种错误,去msdn查一下waveOutGetNumDevs这个函数,然后看最后的Requirements
Requirements
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Mmsystem.h; include Windows.h.
Library: Use Winmm.lib.