PS:此只适宜未经加密,压缩的程序,否则,必须先解密解压。
很多人都说E文的TC(其它的也一样)不好用,那么,你有没有想过自己打造一个有自己个性的TC?当然,这里并不是让你去重写一个C的编译器,但是,我们可以打造一个属于自己的TC!
1。可以汉化TC的菜单
2。适当地改一下版权(^_^,自己玩玩而已,不是很过分吧?)
3。再适当地改一下提示语句,
比如:
Error writing output file
我们可以改成:
笨!错了!写不了啊!
是不是很好玩?
4。............(还没想到,有更好的建议,欢迎提讨论)
但是,我得提醒一下:
1。记得随时备份你要汉化的程序,要一小部分一小部分地改,改成功一部分就得备份,不要想一下子put进你的全部数据,要时时记住你在玩火^_^。
2。这是一件非常磨人的工作,你得有很好的耐心才能很好的完成全部的工作。
好了,费话不多说了,下面两个程序是提取TC中ASCII码及放入你修改汉化后的中英的主体程序:
/*提取ASCII*/
/get.c*/
#include <stdio.h> int main(void) { FILE *in, *out; long T=0,T0=0;
char ch; char sun[160],*ptr;
if ((in = fopen("edit1.com", "rb"))== NULL) { printf("打开文件出错!请检查文件是否存在!\n"); return 1; }
if ((out = fopen("edit1.txt", "wt"))== NULL) { printf("不能建立TXT文件!\n"); return 1; }
while (!feof(in)) { ch=fgetc(in); T++; if( ch>=32 && ch<=122 ) { /*fprintf(out,"[%ld]\n",T-1); */ T0=T; ptr=sun; *ptr++=ch; while (!feof(in)) { ch=fgetc(in); T++; if( ch>=32 && ch<=122 )*ptr++=ch; else { *ptr='\0'; if(T-T0>4) { fprintf(out,"{%ld}\n",T0-1); fprintf(out,"原文:{%s}\n译文:{}\n\n",sun); } break; }
} } /*fputc(fgetc(in), out);*/
}
fclose(in); fclose(out); getch(); return 0; }
==========================
/*压入修改*/
/*put.c*/ #include <stdio.h> int main(void) { FILE *in, *out; long T=0; int c=0; char sun[160],sun1[160],temp[160],*ptr,*p;
if ((out = fopen("edit1.com", "rb+"))== NULL) { printf("打开文件出错!请检查文件是否存在!\n"); return 1; }
if ((in = fopen("edit1.txt", "rt"))== NULL) { printf("不能建立TXT文件!\n"); return 1; }
while (!feof(in)) { fscanf(in," {%ld}",&T); fscanf(in," %[^\n]",sun); fscanf(in," %[^\n]",sun1); printf("[%ld]\n%s\n%s\n",T,sun,sun1); if(*(sun1+6)!='}') { c=0; printf("正在写入.......\n"); ptr=temp; p=sun1+6; while(*ptr++=*p++)c++; fseek(out,T,SEEK_SET); fwrite(temp,sizeof(char),c-1,out);
} getch(); }
fclose(in); fclose(out); getch(); return 0; }
只写了一个主体,如果你想更好用,就自己改改吧!
提取出来的数据类似下面:
{232816} 原文:{^_ZY[X} 译文:{}
{232823} 原文:{SQRWV} 译文:{}
{232832} 原文:{^_ZY[} 译文:{} //象这部分杂乱无意义的你尽可放心删去 ..............
...............
{272678} 原文:{Load F3} 译文:{装入文件F3}
{272708} 原文:{Save F2} 译文:{储存文件F2}//一定要等长,多一个,少一个都不行,可以用空格填充
{272721} 原文:{Write to} 译文:{另存为 } //象这样的你要修改的,有两种方法
一,可以复制出一部分的,记住,1。格式不能变 2。修改后的译文与原文件长度一样,一定要一样,{}是标记,是为了用来对照比较之用的。
二,也可以直接用get程式产生文本文件:1.不修改的就不动它,put程式会自行跳过的,2。修改后的译文与原文件长度一样,一定要一样,{}是标记,是为了用来对照比较之用的。
..........
.........
看看,谁的创意好,嘿嘿,专属你自己的TC(或者其它程式)够酷吧?说不定很多人要叫你大侠^_^,还说不定静夜思会加到下载中去,哇,这下子你就名震天下了!
----------------解决方案--------------------------------------------------------
提示一下,刚我写的时候
{272678} 原文:{Load F3} 译文:{装入文件F3}
{272708} 原文:{Save F2} 译文:{储存文件F2}//一定要等长,多一个,少一个都不行,可以用空格填充
{272721} 原文:{Write to} 译文:{另存为 } //象这样的你要修改的,有两种方法
这三处的译文与原文是一样长的(也就是{}是对齐的)但是发上来就变得不一样长了,
----------------解决方案--------------------------------------------------------
有创意,强烈支持!
----------------解决方案--------------------------------------------------------
很有意思,果然与众不同!支持顶!
----------------解决方案--------------------------------------------------------
你帮我做一个吧```` 要阿拉伯文的
----------------解决方案--------------------------------------------------------
儿戏了点吧,这样就随便写一个出来,我想看明白的人不多,
PE 格式、反汇编等知识都没有,不是等于空看了。
----------------解决方案--------------------------------------------------------
儿戏了点吧,这样就随便写一个出来,我想看明白的人不多,
PE 格式、反汇编等知识都没有,不是等于空看了。
1。儿戏不儿戏,你试试就知道了。
2。上面所说方法与PE,反汇编没任何联系。只要你看懂程序,理解了,按着做就行。
3。再就是补充一点,有 %, &, @....这些特殊符号不要改动,不要移动位置。
----------------解决方案--------------------------------------------------------
呵呵~~~我喜欢~~我怎么就没想到呢~~~~~~~
----------------解决方案--------------------------------------------------------
靠!我发的贴子那次不是被你神骂得狗血喷头?这次竟然能得到神的回贴,理当加倍努力!
----------------解决方案--------------------------------------------------------
我说没想到是说没想到用C语言来写
其实我用DEBUG一样可以改~哼~
还有啊 if ((in = fopen("edit1.com", "rb"))== NULL)
中的edit1.com 好象TC里面没这个东东呀!!!
我觉得你的本意是想说把TC.exe备份成为TC1.EXE,然后再进行操作~~把edit1.com全部要改成TC1.EXE才对
----------------解决方案--------------------------------------------------------