编程之路

——火地晋

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  291 随笔 :: 2 文章 :: 297 评论 :: 134万 阅读

查看 

项目“配置属性-->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里面,再修改的。这个忘记修改了。。。

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

 

posted on   火地晋  阅读(529)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示