今天遇到了一个问题,在csdn上寻找解决方案,找了许久没找到。结果msdn上立马找到。 而且作者的分析令人叹为观止。做技术做到见微知著、所有问题都迎刃而解的地步,是在是个令人向往的境界。

error  link 2005

Error 24 error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) already defined in LIBCMTD.lib(delete2.obj) uafxcwd.lib
Error 22 error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib(dbgdel.obj) uafxcwd.lib
Error 23 error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in libcpmtd.lib(newaop.obj) uafxcwd.lib
Error 21 error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMTD.lib(new.obj) uafxcwd.lib

solution  1  :     Force Linker to Link Libraries in Correct Order

When you use the MFC libraries, you must make sure that they are linked before the CRT library is linked. You can do this by making sure that every file in your project includes Msdev\Mfc\Include\Afx.h first, either directly (#include ) or indirectly (#include ). The Afx.h include file forces the correct order of the libraries, by using the directive:

#pragma comment (lib,"<libname>")

CRT 是 C运行时库,上面的意思是在mfc程序中使用到crt函数时,应该让mfc先于crt链接。 这个一般情况下IDE能帮忙解决,可是有时程序配置不当,确实会出现这个问题。 解决方法很简单,包含afx.h即可。(当然问题是有针对性的)


solution 2: Locate and Correct the Problem Module

问题的发生是因为crt提供了new delete dllmain 的弱链接,而mfc中也有它们的定义,避免使用它们既可。当然这不是好办法。 所以应该在一开始就把程序配置好。

http://social.msdn.microsoft.com/Forums/en-US/ceb90f33-b348-42a7-9e23-a533ba0c7da4/uafxcwdlibdllmodulobj-error-lnk2005-dllmain12-already-defined-in-mytestdllobj

http://stackoverflow.com/questions/3586195/visual-studio-linking-errors-order-in-which-mfc-crt-included

翻译自msdn ---   内核对象命名冲突 :    在处理进程和线程的同步问题时, 对于同步函数CreateX(mutex, semaphare, event, timer等),如果是非第一次(即,已经使用过CreateX )使用且生成同名的object, 则判断其类型是否相同,如果类型相同,则相当于OpenX函数,但是会生成错误码  ERROR_ALREADY_EXISTS; 否则,函数失败, 错误码 ERROR_INVALID_HANDLE。 。 如,对于名字为mm的mutex, 第二次调用createmutex ,相当于openmutex;  但是如果调用createevent生成名字为mm的事件, 则函数失败--  因为所有的内核对象共享同一个命名空间。

翻译自msdn ---   应该知道, 所有能够在注册表中定位到某一项的函数都是不安全的,因为它们都有可能修改注册表。而 如RegQueryValueEx 函数,没有对NULL-TERMINATED字符的判断(也是不安全的), 所有这些需要调用者充分考虑到;     CRegKey封装了读写(本机)注册表的函数,唯有关闭注册表( CRegKey::Close ) 时, 写入的内容才会被保存,但是这个过程可能会花费几秒钟。RegFlushKey 函数可以不用关闭注册表就能把注册表的改变内容写入到硬盘,但是应该慎用,因为写注册表这个过程毕竟是很耗时的。 



win .net 问题汇总相关推荐

  1. WIN Vista系统汇总!!![讯雷下载]

    WIN Vista软件列表 软件名称 更新日期 软件大小 授权形式 软件等级 系统之家Windows Vista Ultimate精简版--5X54 2007-2-16 2:13:02 990000 ...

  2. WIN XP 命令汇总

    winver检查Windows版本 dxdiag检查DirectX信息 mem.exe显示内存使用情况 Sndvol32音量控制程序 sfc.exe系统文件检查器 gpedit.msc 组策略 reg ...

  3. python tkinter实现的文件夹下的excel表格汇总

    应工作需要.写了一个python实现的对文件夹下的所有excel表格汇总的小工具,现将源码发布,希望能给后来人参考. import xlrd import os import xlwt from xl ...

  4. iis应用程序池监控方法实例

    栏目:win服务器问题汇总 时间:2018-10-11 10:41 IIS有十几个应用地址池,总在不经意间停掉一个,下面的方法可以监控状态,方法很简单,就是对应用地址池遍历一遍,检查是否有未启动的应用 ...

  5. Win键+R键快捷命令汇总

    对Windows操作比较熟的人都知道,Win键 + R键可以快速唤起Run窗口,输入命令就可以方便快捷地打开很多打开应用,可以使用到很多系统自带的工具,其中程序员用到的最多的肯定就是cmd了,可以打开 ...

  6. gta5卡win键的解决方案汇总

    自gta5pc版于2015年上线以来就与win10系统存在win键的bug,至2021年仍未修复,症状为打开gta5后按下win+空格会导致win键卡死,类似一直按住win键的状态,此时按下R会唤出& ...

  7. windows10使用WIN+l锁屏无反应的调试方法汇总

    windows10使用WIN+l锁屏无反应的调试方法汇总 1.确认键盘是否损坏. 2.可能被锁定了按键,按下Fn+Win解开即可. 3.在小娜中搜索Regedit,定位至:\HKEY_CURRENT_ ...

  8. win的反义词_初中英语常见的同义词、反义词汇总

    近义词(词组) again and again 反复地:再三地 over and over again 反复:多次重复 at present 现在:目前 at the moment 现在:此时 a l ...

  9. 【批处理DOS-CMD命令-汇总和小结】-cmd的内部命令和外部命令怎么区分,CMD命令和运行(win+r)命令的区别,cmd的命令扩展(扩展命令)

    一.cmd的内部命令和外部命令怎么区分? 区分规则很简单,在cmd窗口中用help命令能打印出来的命令都是cmd内部命令,没包括在里面的都是外部命令. D:\>help 有关某个命令的详细信息, ...

最新文章

  1. php为什么搜不到字段,php-通过多个字段搜索.有时一个领域,有时不止一个领域
  2. 数易云备开启虚拟机备份新时代
  3. skywalking环境搭建及使用
  4. LeetCode-144:二叉树的前序遍历
  5. uniac是哪一代计算机的代表,Saint-Uniac
  6. 如何在现代C ++中实现经典排序算法?
  7. Vuex源码阅读分析
  8. KEIL中加入GD设备文件
  9. EXCEL单元格式(亿元,万元)
  10. 离散数学---序偶,笛卡尔积,自反,闭包
  11. 属于我们的学生时代杀青啦
  12. 计算机休眠移动硬盘不休眠,关闭硬盘盒自动休眠软件
  13. 微信多开软件苹果版_微信最新PC版 无限多开以及消息防撤回
  14. JavaScript的循环
  15. 海贝播放器在iso上无法识别cue文件的问题
  16. ONLYOFFICE历史版本开发技术之四
  17. html字体颜色代码属性,CSS文本字体颜色(CSS color)
  18. 【程序】CC2530单片机使用默认16MHz时钟或外部32MHz时钟实现115200波特率串口USART0的printf输出
  19. HM1548B升压转换器芯片的数据手册免费下载
  20. 鼠标点击,移动回放效果

热门文章

  1. 人的顶级能量从哪里获取?
  2. HiFlow x 金数据,助力客户快速满足应用对接需求
  3. 「掘虫者说」Docker部署组件正常,安全规则正常配置,服务telnet不通
  4. 【VUE+elementUI+JAVA】elementUI的<el-table>组件VUE自定义排序+后台排序含分页完整版
  5. Python : Beautiful Soup修改文档树
  6. 3ds max - 导出 fbx 后,再导入 到 unity 材质会分开的问题如何解决
  7. VB 让图片自动适应picturebox控件大小的方法
  8. LM2596,LM2576,LM2575的差别
  9. [词性] 七、冠词二 [不使用冠词的场合]
  10. Smart200-ST20PLC输入输出接线图