zoukankan      html  css  js  c++  java
  • [转]error LNK2001: __imp___CrtDbgReportW 错误改正

    查看 

    项目“配置属性-->C/C++-->预处理器-->预处理定义”里面,定义了 _DEBUG

    原文地址:

    http://blog.csdn.net/jean7155/article/details/6924806
    今天从一个大项目里分出一个功能模块,编写成DLL文件,利用调用管理等等。反正是分出来一个DLL。

    所以,文件里面的代码全都是在大的项目中编译运行通过的。

    但是,经过调试添加各个lib,include,等等各种。

    编译后总有错误关键字如下:

    error LNK2001:  __imp___CrtDbgReportW

    google了一下,很多人有这个错误差不多都是一个解决办法。

    1. 像这种情况,可以推测运用了错误的运行库包。  
    2.   
    3. 在一程序中使用不同类型的运行时库或使用调试和非调试版本的运行时库,则将收到此链接错误。  
    4.   
    5. 例如,编译一个文件以使用一种运行时库,而编译另一个文件以使用另一种运行时库(例如单线程运行时库对多线程运行时库),试图链接它们,则将得到此警告。应将所有源文件编译为使用同一运行时库。  
    6.   
    7. 其实就是调正编译器选项参数:/MD、/MT   和   /LD  
    8.   
    9. 在vc8中,在“配置属性-->C/C++-->代码生成-->运行时库”中将“多线程(/MT)”统一改为“多线程调试(/MTd)”即可。  

    这样是编译运行通过了。但是,这样就软件就没法发布了。

    接着google看看国外的。

    http://www.adras.com/imp-CrtDbgReportW.t1092-118.html

    上面连接里面,

    1. Its MSVC's own debugging 'breakpoint' feature which pops up the formatted   
    2. dialog box containing the error, line etc, W for unicode, hence it will be   
    3. included for practically everything you do in debug.  
    4.   
    5. Check your DLL versions, changing the Debug DLL settings to something else,   
    6. then change back - failing that, try importing your entire project into a   
    7. new VS8 project.  


    其中,重点是这句:

    1. Check your DLL versions, changing the Debug DLL settings to something else,   
    2. then change back   

    仔细检查项目属性。然后我发现我这个白痴,出了一个弱智错误!

    在“配置属性-->C/C++-->预处理器-->预处理定义”里面,定义了 _DEBUG


    这个是DEBUG的属性页设置,我当时都是直接拷贝到release里面,再修改的。这个忘记修改了。。。

    记录一下吧。找了很久。。。

  • 相关阅读:
    [CQOI2011]放棋子
    [CF1192B]动态直径
    [CERC2016]凸轮廓线
    19_08_14-19_08_21校内训练 补题
    [模板]线性递推+BM
    19_08_10[校内训练]割图
    [模板]多项式封装(无讲解)
    19_07_11校内训练[字串染色]
    CF990G
    19_07_09校内训练[分组]
  • 原文地址:https://www.cnblogs.com/yelaiju/p/2789283.html
Copyright © 2011-2022 走看看