我编的一个VC++程序在在Debug模式下正常编译运行但在Release模式下报错如下: 
Linking... 
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex 
Release/canvas.exe : fatal error LNK1120: 2 unresolved externals 
Error executing link.exe. canvas.exe - 3 error(s), 0 warning(s) 
怎么解决这个问题?

解决方案 »

  1.   

    VC++默认的工程设置是单线程的,而你使用了多线程,所以要修改设置。选择菜单“Project|settings”,选择C/C++标签,在CODE 
    GENERATION分类中选择除SINGLE-THREADED的其他选择。
       比如可以在Use run-time library中选择Debug Multithreaded或者multithreaded
    其中,
    Single-Threaded                单线程静态链接库(release版本)
    Multithreaded                  多线程静态链接库(release版本)
    multithreaded DLL              多线程动态链接库(release版本)
    Debug Single-Threaded          单线程静态链接库(debug版本)
    Debug Multithreaded            多线程静态链接库(debug版本)
    Debug Multithreaded DLL        多线程动态链接库(debug版本)
    单线程: 不需要多线程调用时, 多用在DOS环境下
    多线程: 可以并发运行
    静态库: 直接将库与程序Link, 可以脱离MFC库运行
    动态库: 需要相应的DLL动态库, 程序才能运行
    release版本: 正式发布时使用
    debug版本: 调试阶段使用
      

  2.   

    是不是用到了哪个连接库啊,
    有可能有的连接库不能在release格式下不能用
      

  3.   

    谢谢3no及各位大虾,问题基本解决了
    在Project|settings选择 Multithreaded 能编择通过了!
    但有个警告:
    Linking...
    LINK : warning LNK4089: all references to "comdlg32.dll" discarded by /OPT:REFcanvas.exe - 0 error(s), 1 warning(s)