写过一些Delphi代码,但一直没搞懂Delphi中最基本的类型转换.1.string如何转换成wide string?(在com接口中很多参数是wide string,直接传string类型编译就无法通过)
2.带小数的一般用什么类型?有float这个名字的类型吗?或者还是用Double?
3.如何使用浮点型?浮点型与string类型如何相互转换?
有些幼稚,但就是很基本的东西我没弄明白,请大家不吝赐教.

解决方案 »

  1.   

    1.直接用就可以
    2.带小数的一般用double,real
    3.浮点型与string类型如何相互转换? FloatToStr(E:Double),StrToFloat(S:string);
      

  2.   

    1:
      On Win32, WideString is compatible with the COM BSTR type. Borland development tools have support features that convert AnsiString values to WideString, but you may need to explicitly cast or convert your strings to WideString.
      var 
      ss:string;
      aa:widestring;
      begin
      ss:='hello';
      aa:=widestring(ss);
      end;2:pascal有float?,用double吧
    3:FloatToStr,strtofloat
      

  3.   

    可試試這個StringToOleStrAllocates memory and copies an AnsiStringa string to the OLE format.function StringToOleStr(const Source: string): PWideChar;
      

  4.   

    类型强制转换可以分为两种~~
    第一种,就是直接把内存进行读取或复制~~
    只要两个类型的存储空间相同就可以使用强制转换~~
    var
      B: Byte;
      C: Byte;
    begin
      B := Byte(C); //相似Move(C, B, SizeOf(Byte));
    end;第二种,编译器预定义强制转换~~
    这样的转换不是简单处理相同空间的内存,而执行一段预定义的指令~~
    var
      S: string;
      P: PChar;
    begin
      P := PChar(S); //相似P := @S[1];
    end;
      

  5.   

    这些东西的确是麻烦,不过我记得《DELPHI 5的开发人员指南》中有一页专门是说这个的,我一般会在用到的时候去翻一下,一看就知道如何 与WIN 32的数据类型进行转换了呀
      

  6.   

    建议参考一下《pascal精要》中的相关部分,一般人容易犯错误。
      

  7.   

    宽字节和单字节之间的转换方法
    var
      ws:WideString;
      sz:string;
    begin
      ws := sz; //String 转向 WideString
      sz := ws; //WideString 转向 String
    end;Double, Float都表示浮点型!
    FloatToStr(); //浮点类型转换成字符串类型
    StrToFloat(); //反之!