易码技术论坛

 找回密码
 加入易码
搜索
查看: 365692|回复: 7

[工具] [原创][小工具]制作.y说明和接口的程序

[复制链接]
发表于 2007-2-15 11:32:51 | 显示全部楼层
.y说明和接口的程序
是什么意思?
 楼主| 发表于 2007-2-16 16:27:30 | 显示全部楼层
就是制作.y文件时要用到的接口.txt和说明.txt啊
发表于 2007-2-16 16:54:26 | 显示全部楼层
.y文件?什么东东?
发表于 2007-2-16 19:50:42 | 显示全部楼层
???
发表于 2007-2-16 23:22:40 | 显示全部楼层
.y为yan编译器的链接库系统的文件,这种文件是已经编译好了的文件,无需再次编译。




下面是yan写的链接库生成方法

一,先将源程序编译成lav文件。

比如我要把:

int sqrt(long M)

{int N, i;

long tmp,ttp;

if(M==0)return(0);

N=0;tmp=M>>30;M=M<<2;

if(tmp>1){N++;tmp=tmp-N;}

for(i=15;i>0;i--)

  {N=N<<1;tmp=tmp<<2;tmp=tmp+(-(M<0))*2+((M&0x7fffffff)>>30);

  ttp=N; ttp=(ttp<<1)+1; M=M<<2;

  if(tmp>=ttp){tmp=tmp-ttp;N++;}

  }

return N;

}

这个函数做成y文件,那么得先把它编译成lav文件。在编译器中编译(在上面的代码上添加一个main函数而已):

int sqrt(long M)

{int N, i;

long tmp,ttp;

if(M==0)return(0);

N=0;tmp=M>>30;M=M<<2;

if(tmp>1){N++;tmp=tmp-N;}

for(i=15;i>0;i--)

  {N=N<<1;tmp=tmp<<2;tmp=tmp+(-(M<0))*2+((M&0x7fffffff)>>30);

  ttp=N; ttp=(ttp<<1)+1; M=M<<2;

  if(tmp>=ttp){tmp=tmp-ttp;N++;}

  }

return N;

}

void main()

{

}

这时生成lav文件了(假设文件在/LAVA中)。注意:要做成y文件的函数不能使用全局变量!

二,制作接口和说明文件。

在/文本文件中,创建接口.txt,说明.txt两个文件,接口.txt是用来通知生成器的文件,否则生成器无法知道哪个标识符来调用此函数。该文件的格式是:

函数名  是否有返回值(0:表示没有,1:表示有,2:表示不链接(即:即使#include包含这个文件也无法调用这个函数))(它们之间用空格隔开)

比如:

sqrt   1

写好后保存。说明.txt是说明该y文件包含的接口函数及其使用方法。比如:

原型:long sqrt(long n);

功能:计算n的开根号值

举例:

#include "sqrt.y"

void main()

{SetScreen(0);

printf("%d的开根号是:%d",50,sqrt(50));

getchar();

}

当然也可以按照自己的意愿写,比如加上自己的署名等等。做好后保存。

三,生成y文件。

运行链接库生成器,选择lav文件,即可在/DllData目录里生成相应的y文件。
发表于 2007-2-17 09:53:37 | 显示全部楼层
看看
发表于 2007-2-17 09:53:59 | 显示全部楼层
顶了
 楼主| 发表于 2007-2-15 09:36:27 | 显示全部楼层 |阅读模式
  制作.y说明和接口的程序,只要选择.h或.txt文件就可以了
生成文件:
说明.txt格式:
类似:
int aaa(int bbb,char ccc)
……

接口.txt格式:
类似:
aa 1
bb 0
……

dllmake.rar

2 KB, 下载次数: 1015

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 01:07 , Processed in 0.010564 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表