本帖最后由 haochin 于 2009-10-09 16:21:50 编辑

解决方案 »

  1.   

    //进行GBK简体转繁体
    Function   GBChs2Cht(GBStr: String): AnsiString;
    Var
        Len:   integer;
        pGBCHTChar: PChar;
        pGBCHSChar: PChar;
    Begin
        pGBCHSChar := PChar(GBStr);
        Len  :=  MultiByteToWideChar(936,   0,   pGBCHSChar,   -1,   Nil,   0);
        GetMem(pGBCHTChar,  Len * 2 + 1);
        ZeroMemory(pGBCHTChar, Len *   2 + 1);
        LCMapString($804, LCMAP_TRADITIONAL_CHINESE, pGBCHSChar, -1, pGBCHTChar, Len * 2);
        result := String(pGBCHTChar);
        FreeMem(pGBCHTChar);
    End;你试一下,应该没有的,如果有问题可以到高级群:9642802,找管理员!
      

  2.   

    摘一段给你Function   GBChs2Cht(GBStr:   String):   AnsiString;
      {进行GBK简体转繁体}
      Var
          Len:   integer;
          pGBCHTChar:   PChar;
          pGBCHSChar:   PChar;
      Begin
          pGBCHSChar   :=   PChar(GBStr);
          Len   :=   MultiByteToWideChar(936,   0,   pGBCHSChar,   -1,   Nil,   0);
          GetMem(pGBCHTChar,   Len   *   2   +   1);
          ZeroMemory(pGBCHTChar,   Len   *   2   +   1);
          //GB   CHS   ->   GB   CHT
          LCMapString($804,   LCMAP_TRADITIONAL_CHINESE,   pGBCHSChar,   -1,   pGBCHTChar,   Len   *   2);
          result   :=   String(pGBCHTChar);
          FreeMem(pGBCHTChar);
          //FreeMem(pGBCHSChar);
      End;调用
    ShowMessage(GBChs2Cht('中国'));
      

  3.   

    另外一个问题,刚刚我在winxp简体 ,delphi 下写了一个测试程序。 edit2.text:=GBChs2Cht(edit1.text);在我的xp下没有任何的问题,但是我把这个exe复制到win2003繁体上去时在edit1里输入的字都变成乱码啦。这是怎么回事啊。