error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)

反向代理的隐形陷阱:为何你的HTTPS请求会降级为HTTP? 本文深入探讨了Nginx反向代理中HTTPS降级为HTTP的隐形陷阱及其安全风险,分析了五大降级诱因,包括协议信息丢失、重定向配置错误等,并提供了完整的防御性配置方案和实战指南,帮助开发者确保Web应用的安全性。 阅读详情
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://ticktick.blog.51cto.com/823160/571350

    本文主要分析和解决编译链接时产生的 LNK2005 错误。

【错误信息】:

    mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)

【分析原因】:

    这篇文章:《在Visual C++中以错误的顺序链接CRT库和MFC库时出现LNK2005错误》详细分析和说明了产生这种错误的原因。

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

【解决方法】:


          在“项目 -> 属性 -> 链接器 -> 命令行”栏中,输入 /verbose:lib编译参数,这样,就可以在output窗口看到链接时搜索的库的先后顺序,对于本问题,你一定可以看到类似下面的先后输出:
 
  1. >    Searching D:\vs2008\VC\lib\MSVCRTD.lib: 
  2. >    Searching D:\vs2008\VC\atlmfc\lib\mfcs90ud.lib: 
         由此可以看出,默认情况下,先链接了CRT库MSVCRTD.lib,然后链接的是MFC的库mfcs90ud.lib,因此,需要强制改变一下它们的链接顺序。

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

该情况是基于代码生成MDd  和use  MFC in Share DLL如果项目需要使用use MFC in static library
则需要在项目的 #include<stdfx.h> 前面加上 #define _AFXDLL

In file StdAfx.cpp #define  _AFXDLL before #include "stdafx.h" like this

 

#define _AFXDLL // this is now the first item in the file.

#include "stdafx.h"


Python进阶005:修改Jupyter Notebook的工作路径 1、Jupyter Notebook简介 2、修改Jupyter Notebook的工作路径 如下三个步骤: 一、安装notebook 在CMD命令行中输入: pip install notebook 二、启动notebook jupyter notebook 启动后发现是在你的用户目录下,如下图所示,但是该目录下有很多的其他文件或文件夹,因此我想把这个环境切换到我单门创建的一个文件夹中。 三、创建notebook的配置文件 在CMD命令行中执行: jupyter notebook --genera 阅读详情

相关推荐

GitHub工业级开源利器:StreamPipes如何简化工业物联网数据分析

Apache StreamPipes是一款GitHub上的工业级开源利器,旨在简化工业物联网数据分析。它通过图形化界面连接各类工业协议数据源,以拖拽方式构建流处理管道,并实现实时可视化,有效降低了数据分析的技术门槛,让业务人员也能自助完成从数据接入到洞察的全流程。

weixin_29279153的博客 181

VC2019 - error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dll_dllmain_stub.obj) 中定义

在使用外部库时,还可能出现下述错误: 那怎么解决呢? 把_USRDLL删除进行编译即可解决:

xsophiax的专栏 2034

【计算机组成原理实验】状态机实验

理解“状态机”概念,掌握“状态机”思想描述时序系统。通过下列三种基于D触发器的计数器结构,构建状态机的状态转移电路:环形计数器、扭环计数器和条件判断的扭环计数器。基于“状态机”原理,设计一个“交通灯”系统:控制红黄绿信号灯按照以下顺序循环点亮:“绿 黄 红 绿 ……”,红灯、绿灯和黄灯的亮灯持续时间可以通过拨码开关独立设置。红灯和绿灯是持续亮灯模式,黄灯则是闪烁亮灯模式。

Rover_jb的博客 1332

error LNK2005: DllMain 已经在 MSVCRTD.lib(dllmain.obj) 中定义

本人VS2012下编写DLL,编译时提示 error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义。xxx取决于你VS的版本,可以用everything搜自己的版本,以免编译的时候找不到对应文件!项目-属性-链接器-输入:忽略特定库中输入:mfcxxxd.lib;项目-属性-链接器-附加依赖项:mfcxxxd.lib;就可以保证mfcxxxd和mfcsxxxd先于MSVCRTD.lib链接。

m0_71231972的博客 1486

QT开发串口程序与单片机通讯

如果有对象对这个信号感兴趣,想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。的内容,虽然实现的功能很简单,但是QT上位机开发的步骤基本就是这些步骤,通过这个基础实例把这些套路摸透我们就可以接着进行后续更多QT程序地开发学习了。QWidget类:所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。我们上面运行的上位机都是在Qt Creator中编译运行的,如果我们需要把编写好的可执行文件发送给别人使用的话还需要进行打包。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 946

华为OD机试真题 新系统-等距二进制判断(C/C++/Py/Java/Js/Go)

华为OD机试 新系统真题【等距二进制判断】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【等距二进制判断】

qq_45776114的博客 1087

遇到此类问题:error LNK2005: _DllMain@12 已经在 MSVCRT.lib(dllmain.obj) 中定义

使用 MFC 库时,务必先链接它们,然后再链接 CRT 库。这可以通过确保项目中的每个文件都首先包含 “stdafx.h”或“afx.h”来解决。直接包含 (#include ) 或间接包含 (#include ) 都可以。Afx.h 包含文件会通过使用 #pragma comment (lib," ") 指令来强制采用库的正确顺序。变量重定义的情况,初学c++的时候经常遇到,不过最开始是因为菜,乱定义变量;后面再发生一般是设计问题了,另外在涉及到多线程,CRuntimeLib(c运行时库)时,有时候会发生

lujianxin1098的专栏 5774

华为OD机考真题 新系统 - 小菊的寻宝之旅(Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【小菊的寻宝之旅】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小菊的寻宝之旅】多语言题解。

qq_45776114的博客 620

error LNK2005: _DllMain@12 already defined in MSVCRTD.lib

    本文主要分析和解决编译链接时产生的 LNK2005 错误。 【错误信息】:     mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj) 【分析原因】:     这篇文章:《在Visual C++中以错误的顺序链接CRT库和MFC库时...

weixin_33974433的博客 293

YOLOv11改进缝合注意力 | 深度优化的BiFormer模型-结合BiLevel Routing Attention与深度可分离卷积的创新应用(附代码)

YOLO(You Only Look Once)系列目标检测算法一直以来都是计算机视觉领域的热门选择。随着YOLOv11的发布,它在许多实际应用场景中取得了显著的性能提升。然而,面对日益复杂的目标检测任务,单纯依赖卷积神经网络(CNN)在某些情况下已经显得力不从心,特别是在处理小尺度、密集目标以及遮挡目标时,卷积操作的局部性限制了模型的表达能力。

一键难忘的博客 716

26届数字IC秋招笔试面试全攻略-ASIC设计流程全解析

本文系统介绍了ASIC芯片设计的全流程。前端设计包括规格制定、架构设计、RTL编码和功能验证;后端设计完成物理实现,涵盖布局规划、时钟树综合、布线和物理验证等步骤;Tapeout阶段完成制造数据准备和交付。文章详细说明了各阶段的关键任务、验证方法和设计指标,并列举了典型工具链,为ASIC设计提供了全面的流程指导。通过严格的检查清单和验证步骤,确保芯片设计符合制造要求和性能目标。

2301_79143213的博客 365

error LNK2005: _DllMain@12 already defined in LIBCMTD.lib(dllmain.obj) 解决方案

1、使用场景: 在非MFC程序(使用MFC作为静态连接库)中,添加MFC支持,静态链接MFC库 使用VC6.0编译时,发生如下错误: 2、问题原因分析: CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。 当 C 运行时 (C

youyongyoumou的专栏 4055

MATLAB基础应用精讲-【数模应用】信用评分模型(附R语言和python代码实现)

信用评分模型是近年来兴起的一种为了保障银行和其他金融部门的金融安全而设立的一种关于人身金融权限的划定模型。该模型指根据客户的信用历史资料,利用一定的信用评分模型,得到不同等级的信用分数,根据客户的信用分数,来决定客户所可以持有的金额权限,从而保证还款等业务的安全性。而随着在现代社会和公司中,贷款,信用卡的作用日渐突出,信用评分模型的发展前景不可估量。信贷风险是指借款人因偿还贷款或履行合同承诺而破产而产生损失的可能性。传统上,它与贷款人无法偿还所欠利息和本金、影响现金流和增加装配成本所产生的风险有关。

qq_36130719的博客 364

mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)

加粗样式

struggling_little_c的博客 750

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mfcs100d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)

解决: Ignore Libraries MSVCRTD.lib;mfcs100d.lib AdditionalDependencies: mfcs100d.lib;MSVCRTD.lib   如果采用下面这种解决方法,exe文件的APP的定义出会崩溃: ASSERT(AfxGetThread() == NULL); 只需要在工程设置里面,把 WIN32,NDEBUG,_WIN

swanabin的专栏 6206

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)

問題:這兩天在編譯公司軟件的一個舊版本的代碼。有一個工程在link時一直報告mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj),編譯不過解決:排除工程設置等原因後,上網查找lnk2005資料,找到了解決辦法。Step1 : Open project p...

nwao7890的专栏 382

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

mfcs80ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)

To solve it, do the following steps: 1.    Open project property pages by Alt+F7 2.    Navigate to Configuration properties->Linker->Input section. 3.    Add msvcrtd.lib; mfcs80ud.lib to theI

Stone_Sky 3056

Project error LNK2005: _DllMain@12 already defined in MSVCRT.lib(dllmain.obj)

转自: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/0b154e1c-141f-4567-bb24-1ac7c8ee2713/ When upgrading a DLL from VC6->VS2005, and you get the following: mfcs80d.lib(dllmodul.obj) ...

qq_39459939的博客 580

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

error LNK2005: _DllMain@12 already defined in MSVC 方案一、 编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。弄清楚它形成的原因,就可以轻松解决它了。 造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量。可能存在两种情况: A、对于一些初学编程的程序员,有时候会以

laohu6599的专栏 477
上一篇: fatal error C1902: Program database manager mismatch; please check your installation; error LNK2001:
下一篇: 经典线程同步总结 关键段 事件 互斥量 信号量
雪岢奇
博客等级 码龄17年 310粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值