mfcs100ud.lib(dllmodul.obj):error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义

简单地说,就是产生错误的工程同时使用了CRT库和MFC库,并且链接顺序不对,CRT库对new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。

【解决方法】:

在“项目 -> 属性 -> 链接器 -> 命令行”栏中,输入 /verbose:lib编译参数,这样,就可以在output窗口看到链接时搜索的库的先后顺序,对于本问题,你一定可以看到类似下面的先后输出:

>    Searching D:\vs2008\VC\lib\MSVCRTD.lib:

>    Searching D:\vs2008\VC\atlmfc\lib\mfcs90ud.lib:

由此可以看出,默认情况下,先链接了CRT库MSVCRTD.lib,然后链接的是MFC的库mfcs90ud.lib,因此,需要强制改变一下它们的链接顺序。

选择“项目 -> 属性 -> 链接器 -> 输入”栏,在其中的“忽略特定的库”这一栏输入:MSVCRTD.lib mfcs90ud.lib,然后,在“附加库”这一栏中输入: mfcs90ud.lib MSVCRTD.lib  问题即可解决。

vc2010下“项目 | 属性 | 配置属性 | 链接器 | 输入”,忽略特定默认库=MSVCRTD.lib;mfcs100ud.lib

附加依赖项=mfcs100ud.lib;MSVCRTD.lib

mfcs100ud.lib(dllmodul.obj):error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义相关推荐

  1. error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义

    本文主要分析和解决编译链接时产生的 LNK2005 错误. [错误信息]: mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 alread ...

  2. VS2010编译静态链接MFC的OCX遇到的问题:nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 LIBCMTD.lib(dllm

    打开工程属性页,配置属性->链接器->输入,忽略特定默认库添加 LIBCMTD.lib;nafxcwd.lib 附加依赖项添加 nafxcwd.lib;LIBCMTD.lib 目的是调整依 ...

  3. mfcs100ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 dllmain.obj 中定义

    今天写一个动态链接库,需要引用一个外部的动态链接库,编译时提示"mfcs100ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 dl ...

  4. uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj

    如果出现这种错误:"uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj &q ...

  5. nafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined

    如果开始用了一个ATL的Dll工程,然后为了在这个dll工程里面使用MFC, 在里面加入MFC支持 在stdafx.h的atlbase.h前面加入 #include <afxwin.h> ...

  6. nafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined问题解决

    如果开始用了一个ATL的Dll工程,然后为了在这个dll工程里面使用MFC, 在里面加入MFC支持 在stdafx.h的atlbase.h前面加入 #include <afxwin.h> ...

  7. error LNK2005: _DllMain@12 already defined的解决办法

    用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link ...

  8. error LNK2005: _DllMain@12 already defined in MSVC

    error LNK2005: _DllMain@12 already defined in MSVC 方案一. 编程中经常能遇到LNK2005错误--重复定义错误,其实LNK2005错误并不是一个很难 ...

  9. error LNK2005: _DllMain@12 already defined in MSVC 2009-10-29 17:49

    error LNK2005: _DllMain@12 already defined in MSVC 方案一. 编程中经常能遇到LNK2005错误--重复定义错误,其实LNK2005错误并不是一个很难 ...

最新文章

  1. UA MATH523A 实分析3 积分理论例题 控制收敛定理计算一元积分的极限
  2. 深入理解 Java G1 垃圾收集器--转
  3. Redis(七)分布式锁
  4. App Store 审核指南(中文版)
  5. hadoop中map和reduce的数量设置问题
  6. 【C/C++和指针】深度解析---指针与数组 【精华】
  7. 排序及查找----[(冒泡,快速)(拉格朗日,二分)]
  8. 判断客户端是手机端还是PC端
  9. 【每日一题】一起冲击蓝桥杯吧——Day3【蓝桥真题一起练】
  10. CTFshow misc入门 持续更新中
  11. 关于依赖注入和依赖属性
  12. 软件架构模式 mark Richards - 读后总结 2 事件驱动架构
  13. 易语言浏览本地html,简单的易语言读取网页文本程序
  14. C#使用 MailKit获取邮件中的附件(QQ邮箱/163网易邮箱)
  15. vue前端video视频截图与录影功能的简单实现
  16. 计算机基础知识在教学的应用,计算机基础知识中项目教学法的应用
  17. 怎样记账家庭成员收支,搜索查看明细
  18. c语言程序设计书店销售管理系统,C语言课程设计-书店管理系统
  19. 被final修饰的变量到底能不能被修改
  20. 列合并:两列 或 多列 合并为 一列

热门文章

  1. vue.js 源代码学习笔记 ----- decoder
  2. iOS 10 推送的简单使用
  3. 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器...
  4. 转!!存储过程和触发器
  5. HDU2066一个人的旅行(dijkstra)
  6. 在线高精度在线计时器(秒表)
  7. c语言 整数除以分数,2019年六年级数学上册 3.1分数除法(第1课时)分数除法的意义和整数除以分数练习题 新人教版 (I).doc...
  8. c/c++ 时间函数总结 linux
  9. Service Mesh简史
  10. IDEA中启动tomcat