AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > C++

[翻文转字]C++ Builder控件版

51自学网 http://www.51zixue.net
**************************************************************************************
* [翻文转字]C++ Builder控件版 *
* V1.0 正式版 使用说明 *
* 2000-04-30 *
**************************************************************************************

版权说明:
-------------
作者:周鹏飞(莫高软件工作室)

Email: mogao@371.net
URL: http://mogao.126.com
教育网:http://home.gbsource.net/mogao

本控件为开放源代码的自由软件,版权由作者:周鹏飞和[莫高软件工作室]所有。

功能简介:
-------------
本控件主要作用是: 可编码和解码目前常见的各种乱码。有我在手,乱码不愁!
可以使汉字在Gb码、Big5码和HZ码和之间进行自由的转换。
可以把任意文字和文件转换为UUencode、XXencode、Base64
和QP码这四种在Email中常用的编码方案,同时还支持解码。

升级介绍:
-------------
V1.0正式版(2000-04-30) 增加三种在Email中常用的编码方案:UUencode、XXencode和Base64,
可以把任意文字和文件转换为这三种编码,同时还支持解码。

V1.0 beta(1999-12-05) 可以使汉字在Gb码、Big5码、HZ码和QP码之间进行自由的转换。


使用授权:
-------------
见License.txt文件。


使用环境:
-------------
本控件是用C++ Builder4.0开发而成,现在只能在C++ Builder4.0下使用,
BCB3因手头没有所以没法测试,请安装BCB3的朋友帮忙测试,谢谢。同时
For Delphi的版本、DLL版本和ActiveX版本也将在近期推出。


技术支持与反馈:
-------------
本控件为自由软件,不用注册但同样可以得到技术支持。如果您想得到本控件的技
术支持和更新通知,请访问我的Homepage,加入邮递列表或直接给我写信,Email的
主题(Subject)应写为:订阅邮件列表。
如果您对本控件有什么想法、建议或者您使用了本控件,请来信告知。谢谢您的支持。


使用说明:
-------------
1. [安装控件]
在BCB4的IDE中选择Component菜单下Install Component项,在Unit file name、
Package file name中指定“gbbig.cpp”文件的路径和所使用的包。包可以是已经
存在的,例如D:/borland/cbuilder4/Lib/dclusr40.bpk,也可以创建新包,例如
D:/Borland/CBuilder4/Projects/gb.bpk。单击OK,然后BCB会提示要编译,当编
译完成后单击Install。至此,控件安装成功,应能在构件面板[莫高软件]页上看
到控件图标,如果没有,选择Component菜单下Install Package项,单击Add,选
定刚才编译的.bpl文件(如gb.bpl),单击“确定”,单击OK。

2. [使用控件]
请先将下面3个文件
gbbig.h (控件头文件)
gbbig.res (控件资源文件)
gbbig.dcr (控件图标文件)
拷贝到和您的程序同一个目录下,然后您就可以象使用BCB自带的控件一样使用本
控件了^_^

3. [函数说明]
请参看源程序。

/*************************************************************************
*             [翻文转字]C++ Builder控件版                       *
*                     V1.0 正式版                               *
*                             2000-04-30                                 *
*                                                                        *
*作者:周鹏飞(莫高软件工作室)                                          *
*Email: mogao@371.net                                                    *
*URL: http://mogao.126.com                                               *
*教育网:http://home.gbsource.net/mogao                                 *
*本控件为开放源代码的自由软件,版权由作者:周鹏飞和[莫高软件工作室]所有。*
*************************************************************************/
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "GbBig.h"
#pragma package(smart_init)

//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//

static inline void ValidCtrCheck(TGbBig *)
{
        new TGbBig(NULL);
}
//---------------------------------------------------------------------------
__fastcall TGbBig::TGbBig(TComponent* Owner)
        : TComponent(Owner)
{
  FInputText=NULL;
  FOutputText=NULL;
  temp=NULL;
  FInput='/0';
  FOutput='/0';
}
//---------------------------------------------------------------------------
__fastcall TGbBig::~TGbBig(void)
{
  FInputText=NULL;
  delete FOutputText;
  FOutputText=NULL;
  delete temp;
  temp=NULL;
  FInput='/0';
  FOutput='/0';
}
//---------------------------------------------------------------------------
//编码函数
void __fastcall TGbBig::Encode(void)
{
if(FInputText)
{
   delete FOutputText;
   FOutputText=NULL;

   switch(Code)
   {
     case 0 :
              FOutputText=new char[Num+1];
              Res=LoadResource(HInstance,FindResource(HInstance,"GB_BIG5","TEXT"));
              FontLib=(char*)LockResource(Res);
              GbToBig5();
              break;

     case 1 :
              FOutputText=new char[Num+1];
              Res=LoadResource(HInstance,FindResource(HInstance,"BIG5_GB","TEXT"));
              FontLib=(char*)LockResource(Res);
              Big5ToGb();
              break;
     case 2 :
              FOutputText=new char[Num*3+1];
              EncodeHZ();
              break;
     case 3 :
              FOutputText=new char[Num+1];
              DecodeHZ();
              break;
     case 4 :
              FOutputText=new char[Num*3+1];
              EncodeQP();
              break;
     case 5 :
              FOutputText=new char[Num+1];
              DecodeQP();
              break;

     case 6 :
              FOutputText=new char[Num/57+Num*4/3+5];
              EncodeBase64();
              break;
     case 7 :
              FOutputText=new char[Num*3/4+1];
              DecodeBase64();
              break;

     case 8 :
              FOutputText=new char[Num*2/45+Num*4/3+5];
              EncodeUue();
              break;
     case 9 :
              FOutputText=new char[Num*3/4+1];
              DecodeUue();
              break;
     case 10 :
              FOutputText=new char[Num*2/45+Num*4/3+5];
              EncodeXxe();
              break;

     case 11 :
              FOutputText=new char[Num*3/4+1];
              DecodeXxe();
              break;
   }
}
}
//---------------------------------------------------------------------------
//GB码转换为Big5码
void __fastcall TGbBig::GbToBig5(void)
{
  unsigned char  gx,gy,bx,by;
  unsigned int xx,yy,i=0;

  while((gx=*FInputText++)!='/0')
  {
    if(gx>=161)
    {
      gy=*FInputText++;
      xx=(gx-161)*190;
      yy=(gy-161)*2;
      bx=*(FontLib+xx+yy);
      by=*(FontLib+xx+yy+1);
      if(gy<161) {bx=gx;by=gy;}
      *(FOutputText+i)=bx;
      i++;
      *(FOutputText+i)=by;
      i++;
    }
    else {*(FOutputText+i)=gx;i++;}
  }
  *(FOutputText+i)='/0';
  FOutput=(AnsiString)FOutputText;
}

//---------------------------------------------------------------------------
//Big5码转换为GB码
void __fastcall TGbBig::Big5ToGb(void)
{
  unsigned char gx,gy,bx,by;
  unsigned int xx,yy,i=0;

  while((bx=*FInputText++)!='/0')
  {
    if(bx>=161)
    {
      by=*FInputText++;
      xx=(bx-161)*316;
      if(by<=126) yy=(by-64)*2;
      else yy=(by-98)*2;
      gx=*(FontLib+xx+yy);
      gy=*(FontLib+xx+yy+1);
      if(by<64) {gx=bx;gy=by;}
      *(FOutputText+i)=gx;
      i++;
      *(FOutputText+i)=gy;
      i++;
    }
    else {*(FOutputText+i)=bx;i++;}
  }
  *(FOutputText+i)='/0';
  FOutput=(AnsiString)FOutputText;
}

//---------------------------------------------------------------------------
//用HZ进行编码
void __fastcall TGbBig::EncodeHZ(void)
{
  unsigned int x=0,i=0;
  unsigned char hz;

  while((hz=*FInputText++)!='/0')
  {
    if(hz>=161)
    {
      if(!x)
      {
        *(FOutputText+i)='~';
        i++;
        *(FOutputText+i)='{';
        i++;
        x=1;
      }
      else x=1;
      *(FOutputText+i)=(char)(hz-128);
      i++;
    }
    else
    {
      if(x)
      {
        *(FOutputText+i)='~';
        i++;
        *(FOutputText+i)='}';
        i++;
        x=0;
      }
      else x=0;
      *(FOutputText+i)=hz;
      i++;
    }
  }
  if(x)
  {
    *(FOutputText+i)='~';
    i++;
    *(FOutputText+i)='}';
    i++;
    x=0;
  }
  *(FOutputText+i)='/0';
  FOutput=(AnsiString)FOutputText;
}

//---------------------------------------------------------------------------
//对HZ进行解码
void __fastcall TGbBig::DecodeHZ(void)
{
  unsigned i=0;
  unsigned char hz;
  while((hz=*FInputText++)!='/0')
  {
    loop2:
    if(hz==126)
      if((hz=*FInputText++)!='/0')
        if(hz==123)
          while((hz=*FInputText++)!='/0')
          {
            loop3:
            if(hz==126)
            {
              if((hz=*FInputText++)!='/0')
                if(hz==125) goto loop;
                else {*(FOutputText+i)=(char)254;i++;goto loop3;}
            }
            else {*(FOutputText+i)=(char)(hz+128);i++;}
          }
        else {*(FOutputText+i)='~';i++;goto loop2;}
      else {*(FOutputText+i)='~';i++;goto end;}
    else {*(FOutputText+i)=hz;i++;}
    loop:;
  }
  end:;
  *(FOutputText+i)='/0';
  FOutput=(AnsiString)FOutputText;
}
//---------------------------------------------------------------------------
//用QP进行编码
void __fastcall TGbBig::EncodeQP(void)
{
  unsigned char first,second,sour;
  unsigned int i=0;
  while((sour=*FInputText++)!='/0')
  {
    if(sour==61)
    {
      *(FOutputText+i)='=';
      i++;
      *(FOutputText+i)='3';
      i++;
      *(FOutputText+i)='D';
      i++;
    }
    else
    {
      if(sour>127)
      {
        first=sour>>4;
        second=sour&15;
        if(first>9) first+=55;
        else first+=48;
        if(second>9) second+=55;
        else second+=48;
        *(FOutputText+i)='=';
        i++;
        *(FOutputText+i)=first;
        i++;
        *(FOutputText+i)=second;
        i++;
      }
      else {*(FOutputText+i)=sour;i++;}
    }
  }
  *(FOutputText+i)='/0';
  FOutput=(AnsiString)FOutputText;
}
//---------------------------------------------------------------------------
//对QP进行解码
void __fastcall TGbBig::DecodeQP(void)
{
  unsigned char first,second,sour;
  unsigned int i=0;
  while((sour=*FInputText++)!='/0')
  {
    if(sour==61)
    {
      if((first=*FInputText++)=='/0') {*(FOutputText+i)=sour;i++;break;}
      else if((first<48)||((first>57)&&(first<65))||(first>70))
      {
        *(FOutputText+i)=sour;
        i++;
        *(FOutputText+i)=first;
        i++;
        continue;
      }
      else if((second=*FInputText++)=='/0')
      {
        *(FOutputText+i)=sour;
        i++;
        *(FOutputText+i)=first;
        i++;
        break;
      }
      else if((second<48)||((second>57)&&(second<65))||(second>70))
      {
        *(FOutputText+i)=sour;
        i++;
        *(FOutputText+i)=first;
        i++;
        *(FOutputText+i)=second;
        i++;
        continue;
      }

      if(first>=65) first-=55;
      else first-=48;
      if(second>=65) second-=55;
      else second-=48;
      sour=NULL;
      sour=first<<4;
      sour|=second;
    }
    *(FOutputText+i)=sour;
    i++;
  }
  *(FOutputText+i)='/0';
  FOutput=(AnsiString)FOutputText;
}
//---------------------------------------------------------------------------
//用Base64进行编码
void __fastcall TGbBig::EncodeBase64(void)
{
  unsigned char *sour,*obje,*inputtext;
  unsigned int i,j=0,m=57,n=57;
  inputtext=FInputText;
  sour=new char[57];
  obje=new char[76];
  while(m==57)
  {
    m=strlen(inputtext);
    if(m<57)
    {
      if(m==0) break;
      n=m;
      strncpy(sour,inputtext,m);
      if(n%3) n=n-n%3+3;
      for(i=m;i<n;i++)
        *(sour+i)=NULL;
    }
    else
    {
      m=57;
      strncpy(sour,inputtext,m);
    }
    inputtext+=m;
    for(i=0;i<n/3;i++)
      Base64(sour+i*3,obje+i*4);
    strncpy(FOutputText+j,obje,n/3+m);                  //n/3*4-(n-m)
    j+=n/3+m;
    for(i=0;i<(n-m);i++,j++)
      *(FOutputText+j)='=';
    *(FOutputText+j++)='/n';
  }
  *(FOutputText+j)='/0';
  FOutput=(AnsiString)FOutputText;
  delete []sour;
  delete []obje;
}
//---------------------------------------------------------------------------
void __fastcall TGbBig::Base64(unsigned char chasc[3],unsigned char chuue[4])
/*
  chasc:未编码的二进制代码
  chuue:编码过的Base64代码
*/
{
  unsigned int i,k=2;
  unsigned char t=NULL;
  for(i=0;i<3;i++)
  {
    *(chuue+i)=*(chasc+i)>>k;
    *(chuue+i)|=t;
    t=*(chasc+i)<<(8-k);
    t>>=2;
    k+=2;
  }
  *(chuue+3)=*(chasc+2)&63;

  for(i=0;i<4;i++)
    if((*(chuue+i)>=0)&&(*(chuue+i)<=25)) *(chuue+i)+=65;
    else if((*(chuue+i)>=26)&&(*(chuue+i)<=51)) *(chuue+i)+=71;
    else if((*(chuue+i)>=52)&&(*(chuue+i)<=61)) *(chuue+i)-=4;
    else if(*(chuue+i)==62) *(chuue+i)=43;
    else if(*(chuue+i)==63) *(chuue+i)=47;
}
//---------------------------------------------------------------------------
//对Base64解码
void __fastcall TGbBig::DecodeBase64(void)
{
  unsigned char *sour,*obje,*inputtext;
  unsigned int i,j=0,m=57,n=76;
  sour=new char[76];
  obje=new char[57];
  inputtext=FInputText;
  while(m==57)
  {
    while(*inputtext=='/r'||*inputtext=='/n')
      inputtext++;
    m=strlen(inputtext);
    if(m<76)
    {
      if(m==0) break;
      n=m;
    }
    m=n/4*3;

    strncpy(sour,inputtext,n);
    inputtext+=n;
    for(i=0;i<n/4;i++)
      unBase64(sour+i*4,obje+i*3);
    strncpy(FOutputText+j,obje,m);
    j+=m;
  }
  *(FOutputText+j)='/0';
  FOutput=(AnsiString)FOutputText;
  delete []sour;
  delete []obje;
}
//---------------------------------------------------------------------------
/*Base64解码*/
void __fastcall TGbBig::unBase64(unsigned char chuue[4],unsigned char chasc[3])
/*
chuue:未解码的Base64代码
chasc:解码过的二进制代码
*/
{
  int i,k=2;
  unsigned char t=NULL;

  for(i=0;i<4;i++)
    if((*(chuue+i)>=65)&&(*(chuue+i)<=90)) *(chuue+i)-=65;
    else if((*(chuue+i)>=97)&&(*(chuue+i)<=122)) *(chuue+i)-=71;
    else if((*(chuue+i)>=48)&&(*(chuue+i)<=57)) *(chuue+i)+=4;
    else if(*(chuue+i)==43) *(chuue+i)=62;
    else if(*(chuue+i)==47) *(chuue+i)=63;
    else if(*(chuue+i)==61) *(chuue+i)=0;

  for(i=0;i<3;i++)
  {
    *(chasc+i)=*(chuue+i)<<k;
    k+=2;
    t=*(chuue+i+1)>>8-k;
    *(chasc+i)|=t;
  }
}
//---------------------------------------------------------------------------
//用UUenCode进行编码
void __fastcall TGbBig::EncodeUue(void)
{
  unsigned char *sour,*obje,*inputtext;
  unsigned int i,j=0,m=45,n=45,num;
  inputtext=FInputText;
  sour=new char[45];
  obje=new char[60];
  while(m==45)
  {
    m=strlen(inputtext);
    if(m<45)
    {
      if(m==0) break;
      n=m;
      strncpy(sour,inputtext,m);
      if(n%3) n=n-n%3+3;
      for(i=m;i<n;i++)
        *(sour+i)=NULL;
    }
    else
    {
      m=45;
      strncpy(sour,inputtext,m);
    }
    inputtext+=m;
    for(i=0;i<n/3;i++)
      Uue(sour+i*3,obje+i*4);
    *(FOutputText+j++)=m+32;
    strncpy(FOutputText+j,obje,n/3*4);
    j+=n/3*4;
    *(FOutputText+j++)='/n';
  }
  *(FOutputText+j++)='`';
  *(FOutputText+j++)='/n';
  *(FOutputText+j)='/0';
  FOutput=(AnsiString)FOutputText;
  delete []sour;
  delete []obje;
}
//---------------------------------------------------------------------------
/*Uuencode编码*/
void __fastcall TGbBig::Uue(unsigned char chasc[3],unsigned char chuue[4])
/*
chasc:未编码的二进制代码
chuue:编码过的Uue代码
*/
{
  int i,k=2;
  unsigned char t=NULL;
  for(i=0;i<3;i++)
  {
    *(chuue+i)=*(chasc+i)>>k;
    *(chuue+i)|=t;
    if(*(chuue+i)==NULL) *(chuue+i)+=96;
    else *(chuue+i)+=32;
    t=*(chasc+i)<<(8-k);
    t>>=2;
    k+=2;
  }
  *(chuue+3)=*(chasc+2)&63;
  if(*(chuue+3)==NULL) *(chuue+3)+=96;
  else *(chuue+3)+=32;
}
//---------------------------------------------------------------------------
//对UUenCode解码
void __fastcall TGbBig::DecodeUue(void)
{
  unsigned char *sour,*obje,*inputtext;
  unsigned int i,j=0,m=45,n;
  sour=new char[60];
  obje=new char[45];
  inputtext=FInputText;
  while(m==45)
  {
    while(*inputtext=='/r'||*inputtext=='/n')
      inputtext++;
    if((m=*inputtext)!=96||m=='/0')
    {
      n=m-32;
      m=n;
      inputtext++;
    }
    else break;
    if(n<45)
    {
      if(n%3) n=(n-n%3+3)/3*4;
      else n=n/3*4;
    }
    else
      n=n/3*4;
    strncpy(sour,inputtext,n);
    inputtext+=n;
    for(i=0;i<n/4;i++)
      unUue(sour+i*4,obje+i*3);
    strncpy(FOutputText+j,obje,m);
    j+=m;
  }
  *(FOutputText+j)='/0';
  FOutput=(AnsiString)FOutputText;
  delete []sour;
  delete []obje;
}
//---------------------------------------------------------------------------
/*Uuencode解码*/
void __fastcall TGbBig::unUue(unsigned char chuue[4],unsigned char chasc[3])
/*
chuue:未解码的Uue代码
chasc:解码过的二进制代码
*/
{
  int i,k=2;
  unsigned char t=NULL;
  if(*chuue==96) *chuue=NULL;
  else *chuue-=32;
  for(i=0;i<3;i++)
  {
    *(chasc+i)=*(chuue+i)<<k;
    k+=2;
    if(*(chuue+i+1)==96) *(chuue+i+1)=NULL;
    else *(chuue+i+1)-=32;
    t=*(chuue+i+1)>>8-k;
    *(chasc+i)|=t;
  }
}
//---------------------------------------------------------------------------
//用XXenCode进行编码
void __fastcall TGbBig::EncodeXxe(void)
{
  unsigned char *sour,*obje,*inputtext;
  unsigned int i,j=0,m=45,n=45;
  char set[]="+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  inputtext=FInputText;
  sour=new char[45];
  obje=new char[60];
  while(m==45)
  {
    m=strlen(inputtext);
    if(m<45)
    {
      if(m==0) break;
      n=m;
      strncpy(sour,inputtext,m);
      if(n%3) n=n-n%3+3;
      for(i=m;i<n;i++)
        *(sour+i)=NULL;
    }
    else
    {
      m=45;
      strncpy(sour,inputtext,m);
    }
    inputtext+=m;
    for(i=0;i<n/3;i++)
      Xxe(sour+i*3,obje+i*4);
    *(FOutputText+j++)=set[m&63];
    strncpy(FOutputText+j,obje,n/3*4);
    j+=n/3*4;
    *(FOutputText+j++)='/n';
  }
  *(FOutputText+j++)='+';
  *(FOutputText+j++)='/n';
  *(FOutputText+j)='/0';
  FOutput=(AnsiString)FOutputText;
  delete []sour;
  delete []obje;
}
//---------------------------------------------------------------------------
/*Xxencode编码*/
void __fastcall TGbBig::Xxe(unsigned char chasc[3],unsigned char chxxe[4])
/*
chasc:未编码的二进制代码
chxxe:编码过的Xxe代码
*/
{
  int i;
  char set[]="+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  chxxe[0]=chasc[0]>>2;
  chxxe[1]=(chasc[0]<<4)&48|(chasc[1]>>4)&15;
  chxxe[2]=(chasc[1]<<2)&60|(chasc[2]>>6)&3;
  chxxe[3]=chasc[2]&63;
  for(i=0;i<4;i++) chxxe[i]=set[chxxe[i]];         /*查表*/
}
/*需注意的是,Xxencode文件正文部分中每一行的第一个字母是:从源文件中实际                 读取的字符数的ASCII值取后六位后用set[]查表得到的。*/

//---------------------------------------------------------------------------
//对XXenCode解码
void __fastcall TGbBig::DecodeXxe(void)
{
  unsigned char *sour,*obje,*inputtext;
  unsigned int i,j=0,m=45,n;
  sour=new char[60];
  obje=new char[45];
  inputtext=FInputText;
  while(m==45)
  {
    while(*inputtext=='/r'||*inputtext=='/n')
      inputtext++;
    if((m=*inputtext)!='+'||m=='/0')
    {
      n=set(m);
      m=n;
      inputtext++;
    }
    else break;
    if(n<45)
    {
      if(n%3) n=(n-n%3+3)/3*4;
      else n=n/3*4;
    }
    else n=n/3*4;
    strncpy(sour,inputtext,n);
    inputtext+=n;
    for(i=0;i<n/4;i++)
      unXxe(sour+i*4,obje+i*3);
    strncpy(FOutputText+j,obje,m);
    j+=m;
  }
  *(FOutputText+j)='/0';
  FOutput=(AnsiString)FOutputText;
  delete []sour;
  delete []obje;
}
//---------------------------------------------------------------------------
/*Xxencode解码*/
unsigned char __fastcall TGbBig::set(unsigned char ch)           /*查表函数*/
{
  if(ch==43) ch=0;
  else if(ch==45) ch=1;
  else if(ch>=48&&ch<=57) ch-=46;
  else if(ch>=65&&ch<=90) ch-=53;
  else if(ch>=97&&ch<=122) ch-=59;
  return ch;
}
//---------------------------------------------------------------------------
void __fastcall TGbBig::unXxe(unsigned char chxxe[4],unsigned char chasc[3])
/*
chxxe:未解码的Xxe代码
chasc:解码过的二进制代码
*/
{
  int k=2 ,i;
  unsigned char t;
  t=NULL;
  *chxxe=set(*chxxe);
  for(i=0;i<3;i++)
  {
    *(chxxe+i+1)=set(*(chxxe+i+1));
    *(chasc+i)=*(chxxe+i)<<k;
    k+=2;
    t=*(chxxe+i+1)>>8-k;
    *(chasc+i)|=t;
  }
}
//---------------------------------------------------------------------------
void __fastcall TGbBig::Input(AnsiString FInput)
{
  delete temp;
  temp=NULL;
  Num=FInput.Length();
  FInputText=new char[Num+1];
  strncpy(FInputText,FInput.c_str(),Num);
  FInputText[Num]='/0';
  temp=FInputText;
}
//---------------------------------------------------------------------------
void __fastcall TGbBig::InputText(char* Text)
{
  delete temp;
  temp=NULL;
  Num=StrLen(Text);
  FInputText=new char[Num+1];
  strncpy(FInputText,Text,Num);
  FInputText[Num]='/0';
  temp=FInputText;
}
//---------------------------------------------------------------------------
namespace Gbbig
{
        void __fastcall PACKAGE Register()
        {
                 TComponentClass classes[1] = {__classid(TGbBig)};
                 RegisterComponents("莫高软件", classes, 0);
        }
}
//---------------------------------------------------------------------------

 

 

 
上一篇:CRC-16/CRC-32&nbsp;程序代码  下一篇:C++的中抽象