当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·delete的问题    »显示摘要«
    摘要: 我定义了这样的结构 typedef struct { char code[6]; //股票代码 char name[8]; //股票名称 ... } temp128; typedef struct{ temp128 showt; }tempfile; tempfile *tempfile; 然后开辟了一块内存空间 tempfile=new tempfile[100]; 在退出时 ......
    摘要: 我用: usertranscation ut=null;//编译找不到这个包 ......


directx里自带得几个sample

在指南里有一个关于mesh得例子,里面在cleanup得时候有这样得代码:  
    if(   g_pMeshMaterials   !=   NULL   )    
                  delete[]   g_pMeshMaterials;  
   
          if(   g_pMeshTextures   )  
          {  
                  for(   DWORD   i   =   0;   i   <   g_dwNumMaterials;   i++   )  
                  {  
                          if(   g_pMeshTextures[i]   )  
                                  g_pMeshTextures[i]->Release();  
                  }  
                  delete[]   g_pMeshTextures;  
          }  
        上面删除材质对象直接delete就ok了,但是在删除纹理对象得对象得时候,为什么还要用循环先release后才delete呀,材质对象为什么不先release那?请那位大虾指点一‘二

NO.1   作者: noslopforever

g_pMeshTextures是按指针申请的,动态创建完后,被分配空间,Release不能释放这些空间,而只是告诉系统这些Com对象没有用了而已,空间的释放交给delete来做了

NO.2   作者: fanever

就是,Release跟delete做的是不同的事,DirectX是用COM搭起来的,当你创建一个对象时,记数器就会加1,这个加1经常是内部自己做的,当对象不用了,就要用Release()使记数器减1,这个一般是要程序员自己做的

NO.3   作者: DarthVader

COM对象有一对方法:AddRef和Release  
  是用于增加和减少引用计数的  
  因为COM对象往往可能在多处被引用  
  这样做是为了为了避免重复释放指针的错误  
  当引用计数被Release()减到0,就可以释放指针了  
 


    摘要: 请各位高手指教。我用一个java app 登陆一个asp网页,成功以后网页导入到另一个页。 这时,session里的值丢失,我相知道,怎么让这个值不会丢失呢. 大家请注意,是一个java app ,而不是jsp,servlet。 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE