请问在delphi中怎样用AscW()和ChrW()这两个函数啊,还是根本就用不了,或者需要在前面包含一个什么样的头文件,
   我的目的是想把一个字符串用unicode方式转换成手机可以接受的PDU串形式
  在此谢谢了

解决方案 »

  1.   

    用API函数MultiCharToWideChar()和WideCharToMultiChar()
      

  2.   

    系统里没有自带这两个函数啊,
      我是用的的DELPHI
      

  3.   

    不好意思,记错了,是这两个函数:MultiByteToWideChar()和WideCharToMultiByte()说明如下:Windows函数MultiByteToWideChar用于将多字节字符串转换成宽字符串. int MultiByteToWideChar(    UINT CodePage, // code page 
       DWORD dwFlags, // character-type options 
       LPCSTR lpMultiByteStr, // address of string to map 
       int cchMultiByte, // number of characters in string 
       LPWSTR lpWideCharStr, // address of wide-character buffer 
       int cchWideChar // size of buffer 
      ); uCodePage参数用于标识一个与多字节字符串相关的代码页号。dwFlags参数用于设定另一个控件, 
    它可以用重音符号之类的区分标记来影响字符。这些标志通常并不使用,而在dwFlags参数 
    中则传递0。pMultiByteStr参数用于设定要转换的字符串,cchMultiByte参数用于指明 
    该字符串的长度(按字节计算)。如果你为cchMultiByte参数传递-1,那么该函数用于 
    确定源字符串的长度。转换后产生的Unicode版本字符串将被写入内存中的缓存,其地址 
    由pWideCharStr参数指定。你必须在cchWideChar参数中设定该缓存的最大值(以字符为 
    计量单位)。如果你调用MultiByteToWideChar,给cchWideChar参数传递0,那么该参数 
    将不执行字符串的转换,而是返回为使转换取得成功所需要的缓存的值。通过下列步骤 
    将多字节字符串转换成Unicode等价字符串: 1. 调用MultiByteToWideChar函数,为pWideCharStr参数传递NULL,为cchWideChar 
    参数传递0。 
    2. 分配足够的内存块,用于存放转换后的Unicode字符串。该内存块的大小值由前面的对MultByteToWideChar的调用返回。 
    3. 再次调用MultiByteToWideChar,这次将缓存的地址作为pWideCharStr参数来传递,并传递第一次调用MultiByteToWideChar时返回的缓存大小值,作为cchWidechar参数。 
    4. 使用转换后的字符串。 
    5. 释放Unicode字符串占用的内存块。