用vs新建立了一个mfc应用程序的工程文件,运行时提示错误:fatal error C1189: #error :  Please use the /MD switch for _AFXDLL 修改运行时库为:多线程 DLL (/MD)或多线程调试 DLL (/MDd),就可以编译通过。但是
一、多线程 DLL (/MD)出现两条警告。
警告 1 warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
警告 2 warning LNK4199: 已忽略 /DELAYLOAD:OleAcc.dll;未找到来自 OleAcc.dll 的导入二、多线程调试 DLL (/MDd)出现一条警告。
警告 1 warning LNK4199: 已忽略 /DELAYLOAD:OleAcc.dll;未找到来自 OleAcc.dll 的导入我的问题是,这是微软的BUG吗?只是很简单的新建立一个mfc工程,不能立即运行,必须要修改一下运行时库,才能编译通过,修改后不同的运行时库出的警告不同。微软为什么不自动的让一个新建立的mfc工程可以顺利的运行起来呢?还要程序员大费周折的,一通修改才能运行。

解决方案 »

  1.   

    对了,这个工程是在静态链接库中使用mfc
      

  2.   

    如果选择 在动态链接库中使用mfc,则系统出现警告:
    警告 1 warning C4005: “_AFXDLL”: 宏重定义微软的mfc怎么不能自动的对项目进行设置,让一个新建立的工程文件能够没有错误和警告信息。
      

  3.   

    这样可操作性强.
    不可能什么事情都让编译器帮你做就像debug 与release一样.