none
CLI VC编程的简单问题 RRS feed

  • 问题

  • 那么在CLI环境下进行VC编程是不是创建的变量 或者 对象都要声明为跟踪句柄?
    法拉利 法拉利 法拉利
    2009年6月18日 8:28

答案

  • 用new的话是在非托管堆上分配内存的
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    Visual C++ MVP
    • 已标记为答案 Tim Li 2009年6月23日 10:17
    2009年6月19日 3:32
    版主
  • 如果你说的CLI程序是纯托管代码的程序的话,纯托管代码的变量都在托管堆或者栈上,托管堆上的内存没有跟踪句柄引用的话会被回收。
    不过一般说的CLI程序不是指纯托管代码的程序,而是指有托管代码的程序。


    Please mark the post answered your question as the answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    Visual C++ MVP
    • 已标记为答案 Tim Li 2009年6月23日 10:17
    2009年6月19日 14:52
    版主

全部回复

  • 不一定,看你的项目需求。
    Please mark the post answered your question as answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    2009年6月18日 19:15
    版主
  • 不一定,看你的项目需求。
    Please mark the post answered your question as answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.

    在CLI下创建的对象或者变量不是都在可回收垃圾堆上分配内存么? 那么不是创建追踪句柄的话 垃圾收集器压缩内存的时候地址发生变化 原来的对象的地址可能偏移了 岂不是失去引用了吗?
    法拉利 法拉利 法拉利
    2009年6月19日 2:43
  • 用new的话是在非托管堆上分配内存的
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    Visual C++ MVP
    • 已标记为答案 Tim Li 2009年6月23日 10:17
    2009年6月19日 3:32
    版主
  • 用new的话是在非托管堆上分配内存的
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    Visual C++ MVP

    你这样的话 不就不是CLI程序了 是本地的了

    而且有了跟踪句柄了之后 好像也把指针给淹没了

    不过这也有好处 比之前节省了时间和加大了安全性
    法拉利 法拉利 法拉利
    2009年6月19日 10:07
  • 如果你说的CLI程序是纯托管代码的程序的话,纯托管代码的变量都在托管堆或者栈上,托管堆上的内存没有跟踪句柄引用的话会被回收。
    不过一般说的CLI程序不是指纯托管代码的程序,而是指有托管代码的程序。


    Please mark the post answered your question as the answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    Visual C++ MVP
    • 已标记为答案 Tim Li 2009年6月23日 10:17
    2009年6月19日 14:52
    版主