Bin目录用来存放编译的结果,bin是二进制binrary的英文缩写,因为最初C编译的程序文件都是二进制文件,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。

 

obj是object的缩写,用于存放编译过程中生成的中间临时文件。其中都有debug和release(中文的意思:释放)两个子目录,分

别对应调试版本和发行版本,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。

因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是

否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。

 

PRoperties文件夹定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs类文件,用于保存程序集的信息,如名

称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写。

 

经常你会遇到DEBUG成功的版本RELEASE   就有问题,以下是问题的分析总结
DEBUG和RELEASE   版本差异及调试相关问题:   
  .                   内存分配问题   
    
 1.    变量未初始化。下面的程序在debug中运行的很好。

 thing   *   search(thing   *   something)   
                  BOOL   found;   
                  for(int   i   =   0;   i   <   whatever.GetSize();   i++)   
                      {   
                      if(whatever[i]->field   ==   something->field)   
                            {   /*   found   it   */   
                              found   =   TRUE;   
                              break;   
                            }   /*   found   it   */   
                        }   
          if(found)   
                            return   whatever[i];   
          else   
                            return   NULL;   
  而在release中却不行,因为debug中会自动给变量初始化found=FALSE,而在release版中则不会。所以尽可能的给变量、类或结构初始化。   
  

2.    数据溢出的问题       
    
                  如:char   buffer[10];   
                            int   counter;   
    
                lstrcpy(buffer,   "abcdefghik");   
    
  在debug版中buffer的NULL覆盖了counter的高位,但是除非counter>16M,什么问题也没有。但是在release版中,counter可能被放在寄存器中,这样NULL就覆盖了buffer下面的空间,可能就是函数的返回地址,这将导致ACCESS   ERROR。   
    

 

  3.   DEBUG版和RELEASE版的内存分配方式是不同的   。

如果你在DEBUG版中申请       ele   为   6*sizeof(DWORD)=24bytes,实际上分配给你的是32bytes(debug版以32bytes为单位分配),   而在release版,分配给你的就是24bytes(release版以8bytes为单位),所以在debug版中如果你写ele[6],可能不会有什么问题,而在release版中,就有ACCESS   VIOLATE。   

 

最新文章

  1. java怎么导入一个项目到eclipse
  2. php 月初,月末时间大统计
  3. AngularJS中bootstrap启动
  4. WEB前端工程师面试题【前端】
  5. linux专题一之文件管理(目录结构、创建、查看、删除、移动)
  6. 2014年4月份第1周51Aspx源码发布详情
  7. [转载]两个半小时学会Perl
  8. 《CMake实践》第三部分的示例代码的错误
  9. Android EditText属性
  10. Innobackupex 全备数据库
  11. Spring Cloud Config
  12. 【YouVersion】 The Bible 圣经App
  13. AngularJS html5Mode与ASP.NET MVC路由
  14. ligerUI实现分页
  15. 使用PhotoShop
  16. Apache shiro的简单介绍与使用(与spring整合使用)
  17. 简单介绍python的双向队列
  18. 入学java的第一天
  19. MySQL 5.6的一个bug引发的故障
  20. rsync简介与rsync+inotify配置实时同步数据

热门文章

  1. 常见的Xshell运行命令
  2. Python 内置函数 day4
  3. 我的FPGA
  4. 30.IK分词器配置文件讲解以及自定义词库
  5. Lifting the Stone 计算几何 多边形求重心
  6. MRO 方法解释顺序
  7. qt on android之GPS信号的获取
  8. (IT/互联网行业)你给自己当前的职位拼几分?(评分标准,个人看法,勿喷~)
  9. Android 开源框架Universal-Image-Loader全然解析(一)--- 基本介绍及使用
  10. 初入股市之 Hello Stock