本帖最后由 zaoshuwa 于 2010-08-23 22:18:11 编辑

解决方案 »

  1.   

    在MEMO中要用:
    Memo1.Lines.Clear;
    Memo1.Lines.Add(outstr);
      

  2.   

    你在memo.text赋值后面再加一句ShowMessage看看,问题可能不是出在字符串赋值上
    从图上看你的程序涉及到调用外部DLL或COM函数,可能是这里面有内存管理问题
      

  3.   

    PS:由于腾讯不允许外链,图片无法直接看到,需要在新窗口中打开链接(此链接不支持FF浏览器)
      

  4.   

    去一下字符串的空格再分别Showmessage 和MEMO1.TEXT:=outstr,看看还是不是一样有问题
      

  5.   

    这个问题我不久前也遇到过.你把MENO里先clear一下,然后在添加进去.图看不到,不知道啥错误提示.
      

  6.   

    please try............Memo1.Lines.Clear;
    Memo1.Lines.Add(outstr);
    .............
      

  7.   


    Memo1.Lines.Clear;
    Memo1.Lines.Add(outstr);
    还有在Dll中,不要用string类型作为形参,或返回,这样内存容易出问题,尽量用PChar,
    如果dll是给其他编译器用的,如C++,c#,一定要用PChar类型。
      

  8.   

    “从一个DLL中返回一个字符串变量outstr,内容为:'8888 55555 55555 03 222 0 50 20 3200 0 0 0 0 40 11 '用SHOWMESSAGE(outstr) 可正常显示其内容,但MEMO1.TEXT:=outstr;” 
    帖下代码。开发工具确定是DELPHI吗。
      

  9.   

    当然是D了。呵呵。
    这样,outstr[0] := 30;
    EMO1.TEXT:=outstr;试试,看看输出内容。因为字符串“abc”,delphi时的内存是:{3,'a','b',c'}, 而c是{'a','b','c',0}
      

  10.   

      dll中 返回 string 型 要给 string 指定长度  因为string 长度是动态的 有默认长度,你不指定长度,那么返回的字符串 的长度为默认长度 如果你返回的字符串长度 超过了默认长度,那就显示不出来。
      
      

  11.   

    这个dll 什么语言写的,outstr 的类型是什么?
    memo 一般情况要用add