易码技术论坛

 找回密码
 加入易码
搜索
楼主: yan

[工具] 编译器Y2.26最终版 08/5/10更新

[复制链接]
 楼主| 发表于 2007-6-17 22:49:38 | 显示全部楼层
思路?
什么意思?
发表于 2007-6-17 22:51:51 | 显示全部楼层
倒``
自动安装包的代码能否借阅
我感觉我写的兔子那个有点麻烦``
 楼主| 发表于 2007-6-17 23:45:18 | 显示全部楼层
传上来了,你稍微修改一下应该可以用了。
有点类似pac包。

自动安装包代码.rar

8 KB, 下载次数: 85

自动安装包代码

发表于 2007-6-18 07:56:52 | 显示全部楼层
引用第647楼yan2007-06-16 18:52发表的“”:
643和644楼的,请把源码贴出来,否则我无法判断是不是编译器的问题。
struct TIME
{
  int year;
  char month;
  char day;
  char hour;
  char minute;
  char second;
  char week;
};
struct TIME time;
void main()
{
Gettime(time);
printf("%d年%d月%d日\n",time.year,time.month,time.day);
printf("%d:%d:%d\n",time.hour,time.mintue,time.second);
printf("星期%d",time.week);
getchar();
}


完全跟你举的例子一样啊,确说变量a未定义,定义后有说不支持getchar();函数
不知道怎么回事
我的是NC2600C
 楼主| 发表于 2007-6-18 12:14:24 | 显示全部楼层
Gettime(time);这里函数写错了,应该是GetTime(time);
还有time.mintue应该是time.minute
哪来的变量a?
发表于 2007-6-18 20:04:20 | 显示全部楼层
2.14版的认证是干什么的?刚下时一般认证为20B,你一个小更新后全都认证为0B。
发表于 2007-6-18 21:40:47 | 显示全部楼层
问题汇报
以下代码通过编译但运行结果不对:
  1. struct FL
  2. {
  3.   char Dir[60];
  4.   char FileName[32][15];
  5.   char FileCount;
  6. }cur;
  7. void AppFileName(struct FL &q,int f)
  8. {
  9.   strcpy(q.FileName[q.FileCount++],f);
  10. }
  11. void main()
  12. {
  13.   AppFileName(cur,"abc.txt");
  14.   printf("%s",cur.FileName[0]);
  15. }
复制代码
而将AppFileName函数中的
“strcpy(q.FileName[q.FileCount++],f);”
改为
“strcpy(q.FileName+(q.FileCount++)*15,f);”

或者取消AppFileName函数而直接在main函数中写
“strcpy(cur.FileName[cur.FileCount++],"abc.txt");”

就可以使运行结果正确。

不知是否我写的程序本身有错,希望yan看看,谢谢!
发表于 2007-6-19 07:30:13 | 显示全部楼层
引用第685楼yan2007-06-18 12:14发表的“”:
Gettime(time);这里函数写错了,应该是GetTime(time);
还有time.mintue应该是time.minute
哪来的变量a?
GetTime与minute是我输入的错误,程序没错的
变量a是系统提示的,我也不知道啊!这才问你的。
发表于 2007-6-19 07:39:07 | 显示全部楼层
还有,我在设定中设定了不编译成h文件,编译完后删除h 文件,正常编译还可以,没有问题!
但为什么有一些有错的程序(能通过预处理系统),在通过预处理后经过编译,系统提示说某某地方错误后,退出,但为什么还有h文件!
 楼主| 发表于 2007-6-19 08:09:04 | 显示全部楼层
引用第687楼Lumj2007-06-18 21:40发表的“”:
问题汇报
以下代码通过编译但运行结果不对:
[code]struct FL
{
   char Dir[60];
.......
是编译器的bug,已经在Y2.15版更正了,重新安装就可以了,谢谢。
 楼主| 发表于 2007-6-19 08:11:11 | 显示全部楼层
引用第686楼CJJR2007-06-18 20:04发表的“”:
2.14版的认证是干什么的?刚下时一般认证为20B,你一个小更新后全都认证为0B。
这个认证是指程序所使用全局变量大小,而不是程序运行所使用内存的最高峰值。
 楼主| 发表于 2007-6-19 08:11:54 | 显示全部楼层
引用第688楼tuyang2007-06-19 07:30发表的“”:

GetTime与minute是我输入的错误,程序没错的
变量a是系统提示的,我也不知道啊!这才问你的。
在改了这两个错误是可以编译通过的啊。
 楼主| 发表于 2007-6-19 08:14:43 | 显示全部楼层
引用第689楼tuyang2007-06-19 07:39发表的“”:
还有,我在设定中设定了不编译成h文件,编译完后删除h 文件,正常编译还可以,没有问题!
但为什么有一些有错的程序(能通过预处理系统),在通过预处理后经过编译,系统提示说某某地方错误后,退出,但为什么还有h文件!
编译错误算是异常退出编译系统,所以没有删除h文件。
不过2.15版本改成了即使编译错误,只要设置了删除头文件都在编译结束后将其删除。
 楼主| 发表于 2007-6-19 08:18:57 | 显示全部楼层
这次更新主要是修改了Lumj提出的bug。还有在NC3000.y和NC2600.y中增加了:
原型:void SetFlmMode(struct FLM_BUF &cut,char &pic[]);
功能:设置播放的缓冲区地址。
说明:配合FlmDecode函数使用,必须在FlmDecode函数前调用改函数。使用该函数前必须定义:
struct FLM_BUF
{char cmd;
char pic[1600];
};
这是存放压缩数据的缓冲区,所以参数cut就是压缩数据缓冲区,而参数pic是解压缩后的数据缓冲区。

原型:void FlmDecode();
功能:flm影片解码。
说明:配合SetFlmMode函数使用,只有在调用FlmDecode函数后才能调用该函数。
举例:
#define ESC_KEY 0x1b
#include <NC3000.y>
struct FLM_BUF
{char cmd;
char pic[1600];
};
void playFlm2(int fn)
{char fp,head[16];
char ms,low,high;
int tmp,length,frame,process,speed;
struct FLM_BUF cut;
char pic[1600];
if(!(fp=fopen(fn,"r")))return;
fread(head,1,16,fp);
if(head[0]!=&#39;F&#39;||head[1]!=&#39;L&#39;||head[2]!=&#39;M&#39;||head[3]!=0x10){fclose(fp);return;}//不是有效的FLM文件
if(head[4])//压缩格式的flm文件
  {frame=head[5]+(head[6]<<8);//祯数
  speed=head[7];//速度(延迟tick数)
  SetFlmMode(cut,pic);//设置播放的缓冲区地址
  for(process=0;process<frame&&Inkey()!=ESC_KEY;process++)
   {ms=Getms();
    fread(&tmp,1,2,fp);length=(tmp&0xfff)-2;cut.cmd=tmp>>12;//读取长度
    fread(cut.pic,1,length,fp);cut.pic[length]=0xc1;//读取压缩数据
    FlmDecode();//解码
    WriteBlock(0,0,160,80,0x41,pic);//显示
    if(speed){while(((Getms()-ms)&0xff)<speed);}//延时,祯控制
   }
  }
fclose(fp);
}
void main()
{char fn[60];
ChDir("/开机画面");
for(;;)
  {if(!FileList(fn)){ChDir("..");continue;}
  if(ChDir(fn))continue;
  playFlm2(fn);
  ChDir("/开机画面");
  }
}
可以用来播放压缩的flm文件。还有
原型:long DiskCheck();
功能:获取磁盘剩余空间。
说明:返回剩余磁盘空间大小,单位为KB。使用该函数前最好先空间整理一下。
举例:
#include <NC3000.y>
void main()
{SetScreen(0);
DiskReclaim();
printf("剩余空间:%dKB\n",DiskCheck());
getchar();
}
可以获取剩余空间大小。
 楼主| 发表于 2007-6-19 08:21:58 | 显示全部楼层
重镑推出第一个NC3000的4灰度库函数,目前这个函数比较简陋,主要是测试一下效果,大家编译下底下那个例子,效果很不错哦。
原型:void SetGraphMode();
功能:设置系统图形模式。

原型:void SetFgColor(int color);
功能:设置背景颜色。
说明:2色模式下无效,color只能取0~3。

原型:void SetBgColor(int color);
功能:设置前景颜色。
说明:2色模式下无效,color只能取0~3。

原型:void SetScreen4();
功能:清屏。

原型:void Point4(int x,int y,int type);
功能:画点。
说明x,y)为点的坐标,type值含义如下:
type=0:用背景色画点
    1:用前景色画点
    2:点的颜色取反
    直接在屏幕作图

原型:void Line4(int x0,int y0,int x1,int y1,int type);
功能:画直线。
说明x0,y0)和(x1,y1)指定直线的两个端点坐标。
type=0:用背景色画线
    1:用前景色画线
    2:线的所有点取反
    直接在屏幕作图

原型:void Circle4(int x,int y,int r,int type);
功能:画圆。
说明x,y)指定圆心,r指定半径。
type=0:用背景色画圆
    1:用前景色画圆
    2:圆的所有点取反
    直接在屏幕作图

原型:void Ellispe4(int x,int y,int a,int b,int type);
功能:画椭圆。
说明:(x,y)指定圆心,a为横半轴长度,b为纵半轴长度。
type=0:用背景色画椭圆
    1:用前景色画椭圆
    2:椭圆的所有点取反
    直接在屏幕作图

原型:void TextOut4(int x,int y,char &string[],int type);
功能:把字符串绘制到屏幕。
说明:在屏幕的(x,y)坐标处绘制字符串,string为字符串的地址
type的bit7=1:大字体,bit7=0:小字体。
直接在屏幕上绘图。

举例:
#include <Gray.y>
void main()
{
int i,j;
SetGraphMode();
SetScreen4();
SetFgColor(1);
for(i=j=0;i<80;i=i+2)
  {
  SetFgColor(j++%4);
  Line4(1,i,159,i,1);
  }
Delay(1000);
SetScreen4();
SetFgColor(1);Circle4(80,40,35,1);
SetFgColor(2);Ellispe4(80,40,75,25,1);
Delay(1000);
SetScreen4();
SetFgColor(0);SetBgColor(1);
TextOut4(2,2,"这是一个简单的4灰度链接库",1);
SetFgColor(1);SetBgColor(2);
TextOut4(2,20,"算法不是很好,速度有点慢",1);
SetFgColor(2);SetBgColor(1);
TextOut4(2,40,"效果怎么样?",128);
SetFgColor(1);SetBgColor(0);
TextOut4(2,60,"到这里就结束了",128);
getchar();
}
发表于 2007-6-19 08:36:27 | 显示全部楼层
我第一个支持!
 楼主| 发表于 2007-6-19 08:38:45 | 显示全部楼层
更正一下:Gray.y里的TextOut改为TextOut4。
发表于 2007-6-19 10:52:01 | 显示全部楼层
支持啊```
发表于 2007-6-19 12:01:01 | 显示全部楼层
好啊....支持NC3K的4灰度!!!!!!!!!!
发表于 2007-6-19 12:17:46 | 显示全部楼层
YAN...请问什么时候能出3K 4灰度下的WriteBlock函数?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2025-5-15 00:26 , Processed in 0.015251 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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