VSc++MFC对话框代码问题

1>d:\vs2010\vc\atlmfc\include\afxver_.h(81): fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
VSc++出现以上问题应该怎么办?

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
这个错误是由于在使用 MFC 时,编译器使用了错误的运行时库。在 MFC 中,/MD(多线程 DLL)是必须的。如果您使用了/MT(多线程静态库)或/ML(单线程)选项,则会出现此错误。

要解决这个问题,您可以按照以下步骤操作:

  1. 在 Visual Studio 中打开您的项目。
  2. 在“解决方案资源管理器”中右键单击项目,然后选择“属性”。
  3. 在“属性页”中,展开“配置属性” > “C/C++” > “代码生成”。
  4. 将“运行库”选项更改为“多线程 DLL(/MD)”。
  5. 点击“应用”和“确定”按钮,保存更改。
  6. 再次编译您的项目,并验证是否出现了同样的错误。

这样应该就能够解决这个问题了。如果还有其他问题,请随时提出。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

  • 这篇文章:VS2019 MFC编译错误:#error Please use the /MD switch for _AFXDLL builds 也许能够解决你的问题,你可以看下
  • 除此之外, 这篇博客: 打包解包模块总结:VS2010中默认的编码是Unicode编码中的 error C1189: #error : Please use the /MD switch for _AFXDLL builds 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 解决方法:

    修改设置:工程(Project)-> 属性(Properties)-> 配置属性(Configuration Properties)-> c/c+±> 代码生成(Code Generation)->运行库(Use run-time library)->多线程调试DLL(/MD)
    在这里插入图片描述
    //百度了一下那几个选项什么意思:

    多线程DLL(/MD):在dll中使用多线程,创建动态链接库的release版本,需要选择。
    多线程(/MT): 在exe里使用多线程,创建exe的release版本,需要选择。
    多线程调试(/MTd):同/MT一样,不过是在Debug版本中使用。
    多线程dll调试(/MDL):同/MD一样,不过是在Debug版本中使用。

    第五个问题是在编译已经没有error,运行的时候弹出来的提示: