CString是不是缓冲区有长度限制?
如何才能调整?

解决方案 »

  1.   

    CString没有缓冲区长度限制,其存储内容只与你的内存有关。
    如果你在调试看不全内容,可以存到文件里看,或者看内存内容
      

  2.   

    GetBuffer()函数里可以用参数设定你想要的长度的。
      

  3.   

    我把一个很大的文本文件都到一个CString都没事...
      

  4.   

    也许是你的程序中把“/0”加入到CString当中而导致字符串被截断
      

  5.   

    这个问题我以前见过一个讨论,比较深入的那种。
    对于单个字符串,理论上是没有的。但是对于整个程序中的CString的变量,编译器在DEBUG模式下会一次申请很大的一块区域,这个区域是多少,我不记得了,在Release模式下,一次申请的内存区域就要少一些,好象是64K吧?(?是这个数吗?)如果程序运行过程中,内存不够,会自动再申请,所以,理论上是没有限制的。
      

  6.   

    CString 虽然理论上没有限制,但使用中就不同了,我曾经遍过一个编码查询的DLL,在初始化CString变量时,是有长度限制的,超过一定长度,编译器就会抱错!
      

  7.   

    CString 的问题有一个经典帖子,就在基础类里,有很多跟贴,找找看,不过那个帖子是讨论CString类的内存泄露问题的
    CString没有楼主担心的问题,检查程序中其他的地方