widestring和string这两个类型的关系,如何把前的转换成后一种。

解决方案 »

  1.   

    widestring类型:BORLAND创建这个类型主要是为了针对api而设计的它是一个以空结束字符串类型类型C语言中的缓冲区如果没有记错的话大小为2g,
    STRING类型:天天见这种类型如果标记开关默认的话为string类型否则为shortstring类型。乱说
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    aa:widestring;
    bb:string;
    begin
    aa:='1234';
    bb:='5678';
    aa:=bb;
    bb:=aa;
    end;
      

  3.   

    WideString ~2^30 characters 4 bytes to 2GB
    Unicode characters; 
    COM servers and interfaces In the default {$H+} state, the compiler interprets string (when it appears without a bracketed number after it) as AnsiString. Use the {$H杴 directive to turn string into ShortString.
      

  4.   

    String是Pascal使用的字符串格式.它分为ShortString,WideString和AnsiString,String缺省为AnsiString.
       ShortString的最大长度为255个字符.
       AnsiString 的最大长度为2^31个字符.
       WideString 的最大长度为2^30个字符. 
       AnsiString和WideString的区别在于字符集的不同.
       AnsiString对应于AnsiChar,WideString对应于WideChar.
       
       widestring可以直接赋给string,而string要赋给widestring必须使用widestring(string) 
      

  5.   

    StringToWideChar
    WideCharToString,
    如果你不嫌繁,或者涉及了pchar的话。
    unicode就是繁。
      

  6.   

    同意sean2000(地宽天高) ,哈哈
      

  7.   

    WidecharToString函数
    function WidecharToString(Source:PWideChar):String;
    该函数利用WidecharToMultiByte Win32 API将空终止Unicode编码字符串转换为单个或多个字节。
    StringToWidechar函数
    function StringToWideChar(const Source:string;Dest:PWideChar;DestSize:Integer);PWideChar;
    该函数将由Source参数给定的字符串从ANSI编码转换为UNICODE编码后保存在由Dest和DestSize给定的缓冲区中。该缓冲区中包含的最多字符数为DestSize-1,以一个NULL宽字符终止。该函数返回一个指向Dest的指针。
      

  8.   

    楼上都说了。
    另外,它们之间的转换,直接用=号就行了。例如
    var
      ws:widestring;
      s:string;
    begin
      ws:='字符串';
      s:=ws;     
    end;
      

  9.   

    {H+}和
    {H-}编译开关
    这好象对string长度的限制吧(记不太清楚,说错别怪我)
    {H-} string 长度是最大为256
    {H+} string  长度为4G吧!