导航:首页 > 源码编译 > vic怎么编译源文件

vic怎么编译源文件

发布时间:2022-11-18 16:29:28

‘壹’ arm7 lpc2103 中断 c语言

一下来自我的空间http://hi..com/ch314156/blog

注意要设定选项,不然中断向量表不位于地址0出,也就无法进入中断例程,具体设定方法是:Options for Target'???'->Linker->选中"Use Memory Layout from Target Dialog"

//*****************************************************************************************
//非向量外部中断C例程
//P0.16做键盘输入,P0.18做LED输出

#include<LPC2103.H>
#define LED 1<<18

void __irq WaiBuZhongDuan(void) // 注意要加“__irq”,告诉编译器,
{ //这是中断例程
if((IOSET&LED)==0) IOSET=LED;
else IOCLR=LED; //将P0.0取反
EXTINT=0X01; //清除中断标志,写1清0
VICVectAddr=0; //清0,通知VIC中断结束
}

int main(void)
{
PINSEL1=0X1; //P0.16选为外部中断0引脚输入
IODIR=LED; //P0.18作为LED输出
EXTMODE=0X01; //边沿触发

VICDefVectAddr=(int)WaiBuZhongDuan; //填入中断例程的地址
VICIntEnable=1<<14; //使能EINT0中断
while(1) ;
}
//*****************************************************************************************
PROTEUS仿真见下:

硬件仿真:

补充说明:程序中没有区分IRQ或FIQ,因为VICIntSelect默认为0即所有中断源都是IRQ。

如果中断不能进入,查看一下CPSR中的I位,如果是1,说明CPSR中断标志禁止中断,所以要将I清0,解决办法是利用一个软件中断,进入管理模式,将SPSR的I清0,返回前将SPSR复制到CPSR中。具体做法有待以后解决。本来是想用内嵌汇编的,但是考虑到用户模式不能对CPSR修改。或者修改一下启动代码。

VICDefVectAddr是非向量IRQ的中断例程地址(与此相似的16个向量IRQ的中断例程地址VICVectAddr0~15),中断触发后,VICDefVectAddr(同样,如果是向量IRQ,相应的VICDefVectAddr0~15)中的值自动进入VICVectAddr,所以PC指向VICVectAddr后就进入相应的中断例程。

那么PC为什么会指向VICVectAddr呢?与C51相似的是,ARM的IRQ触发后,PC会跳到0x00000018地址处,查看Startup里的异常向量表,在地址0x00000018处有这样一条指令: LDR PC, [PC, #-0x0FF0],计算一下 0x00000018+8-0x0FF0=0xFFFFF030,(+8是因为三级流水线),0xFFFFF030就是VICVectAddr的地址。

观察一下异常向量表,和C51的中断向量表比较一下,是不是有相似之处:
ARM:
Vectors LDR PC, Reset_Addr ;0x00000000复位
LDR PC, Undef_Addr ;0x00000004未定义异常
LDR PC, SWI_Addr ;0x00000008软件中断
LDR PC, PAbt_Addr ;0x0000000C预取指中止
LDR PC, DAbt_Addr ;0x00000010数据中止
NOP ;0x00000014保留
; LDR PC, IRQ_Addr
LDR PC, [PC, #-0x0FF0] ;0x00000018中断
LDR PC, FIQ_Addr ;0x0000001C快速中断

C51:
ORG 0003H
SJMP INT0
ORG 000BH
SJMP TIME0
ORG 0013H
SJMP INT1
ORG 001BH
SJMP TIME1
ORG 0023H
SJMP SERIAL

VICIntEnable=1<<14是因为外部中断0的编号为14。

“__irq”如果不写,编译器无法正常处理此中断例程,经测试,如果没有,中断例程不能返回正常,具体原因:若不加“__irq”,编译器把此程序看作普通子程序,返回指令是BX RL,若加“__irq”,编译器把此程序看作中断例程,返回指令是SUBS PC,R14,#4,这才是中断返回的正确指令。

EXTINT是外部中断的中断标志位,写1才能清0,写0无效,硬件仿真证明:如果不清0,中断例程将无限循环。顺便说一句:PROTEUS的虚拟仿真结果和事实(硬件仿真)有差异,比如对EXTINT、EXTMODE,VICVectAddr=0没有真实表现,KEIL的软件仿真效果和事实符合的很好。

经测定:如果没有VICVectAddr=0;这一句代码,程序将不会第二次进入中断例程。

‘贰’ 如何打开VIC文件

我们经常不知道一些文件怎么打开,来这里查查吧

http://www.gzhtcm.com/bbs/read.php?tid=7203

386 Windows虚拟设备驱动程序 CDX 复合索引文件
ABC ASCII编码格式文件 CFG 配置文件,包含系统设备和环境信息
ACM 音频压缩管理驱动程序 CGM Paint Shop Pro映象文件
ACT 文档向导 CHK 被CHKDSK/F命令恢复的由丢失的簇组成的文件
ADF 系统管理配置 CLP 剪贴板文件
AIF 声音格式文件 CMD 命令文件
AIO 由APL文件转换成的格式文件 CNF 配置文件,包含设备配置的有关信息
ANI 动画鼠标光标 CNT 帮助内容
APL APL工作区格式文件 COB COBOL语言源程序文件
APP 应用文件 COM DOS命令文件
ARC 压缩文件 CPI 代码字符集信息文件
ARJ 压缩文件 CPL 控制面板应用程序
ART 图像文件 CPP C/C++程序源文件
ASC ASC文本文件 CPT Macintosh Compact Pro文件库
ASM MASM汇编语言源程序文件 CRD WINDOWS卡片
AU 声音文件 CRF 交叉汇编文件,由MASM编译器产生的程序列表
AVI Windows视频文件 CRT INTERNET安全证书
AWD 传真浏览文件 CSV 命令分割数据
AWP 传真关键浏览器 CTL 控制文件
AWS 传真签名浏览器 CUR 鼠标光标资源文件
BAD 错误文件 CUT Paint Shop Pro映象文件
BAK 备份文件 DAT 数据文件,包含程序中需处理或产生的一批数据
BAS BASIC语言源程序文件 DB dBASE或FoxBASE配置文件,包含运行环境的参数
BAT DOS批处理文件 DBC 数据库
BCM WORKS通讯文件 DBF FoxBASE或FoxPro数据库索引

BDB WORKS数据库文件 DBS 数据库

BFC 公文包 DBT 备注文件

BIN 二进制文件 DCT 字典文件
BMP WINDOWS位图文件 DCX 传真浏览文档或数据库索引
C C语言源程序文件 DDI 压缩文件
CAB WINDOWS安装程序 DEF 模式定义文件
CAL WINDOWS日历文件 DER Internet安全证书
CDA CD音轨文件 DEV 设备驱动文件,包含安装新设备时所需的参数
CDR Paint Shop Pro映象文件 DGS 设备诊断文件

MDB 扩展的浏览器 PCX 图形数据文件
MEM FOXBASE内存变量文件 PDR 口驱动程序
MID MIDI序列 PF ICM描述文件
MIF MIDI乐器 PFM 打印机字形组合文件
MIV MCC访问The Microsoft Network的快捷方式 PFO FORTRAN语言预编译文件
MLV 电影剪辑 PGM 样本或演示文件
MMF MICROSOFT邮件 PIC 图形数据文件
MMM 动画 PIF 程序信息文件
MNF 已存的MSN搜索 PIX 图形数据文件
MNT 菜单备注 PJT 项目备注
MNU 菜单数据文件,包含有关菜单的定义 PJX 项目
MNX 表单 POT POWERPOINT模板
MOV 影片剪辑 PPD POSTSCRIPT打印机描述
MPA 运动图形压缩格式文件 PPT 图片文件
MPD 驱动程序 PRG FOXBASE或FOXPRO过程或程序文件
MPE 运动图形压缩格式文件 PRJ 设计数据文件
MPG 运动图形压缩格式文件 PRN 打印格式文件
MPR 生成的菜单程序 PRO 说明文件
MPV 媒体剪辑 PRT 打印机格式
MPX 编译后的菜单程序 PS 用于POSTSCRIPT的文档
MSG 信息文件 PST MICROSOFT邮件
MSN MICROSOFT网络中心 PUB 通讯用公钥文件
MSP WINDOWS画笔图像 PWL 口令列表
NAV MSN应用程序 PX 原始索引文件
NDX DBASE或FOXBASE索引数据文件 QIC MICROSOFT程序的备份集
NED MSN应用程序 QPR 生成的查询程序
NET 网络配置文件 QPX 编辑后的查询程序
NIS 自然语言服务驱动程序 QT 影片剪辑
NWS INTERNET新闻 RAS Paint Shop Pro映象文件
OBD OFFICE活页夹 RAW Paint Shop Pro映象文件
OBJ 目标代码文件 RBK WINDOWS设备配置备份文件
OBT OFFICE活页夹模板 RC 资源文件
OBZ OFFICE活页夹向导 RCF RICHWIN艺术汉字制作器
OCX OLE控制 REC 用RECOVER命令恢复的文件
OFN 其它OFFICE文档 REG 应用程序注册器
OUT C语言目标文件 REF 说明性的文本文件
OVD 覆盖文件 REP 报表文件
OVL 覆盖文件 RLE 压缩格式化文件
OVR 覆盖文件 RMI MIDI音序
PAB MICROSOFT邮件 RPF 报表正文格式化文件
PAS PASCAL语言源程序文件 RPT 报表生成文件
PBK NBN电话簿 RTF 文本格式文件
PBM PAINT SHOP PRO映象文件 SAV 拷贝文件
PC C语言预编译文件 SCP 拨号网络脚本

SCR 正本文件 VBX Visual Basic控制文件
SCT 表单备注 VCT 可视类库备注
SCX 表单 VCX 可视类库
SEA MACINTOSH自我选用档案库文件 VER 版本描述
SEC 加密文件 VEW 报表视图文件
SET 设置文件 VIR 被病毒感染文件的备份文件
SHB 指向一个文档的快捷方式 VUE FoxPro 2.X视图
SHL 批命令文件 VXD 虚拟设置驱动程序
SHS 碎片对象 WAV 声音文件
SIT 压缩文件 WBK WORD后备文档
SLT 设置文件 WCM Works通讯文件
SND 声音格式文件 WDB Works数据库文件
SPD POSTSCRIPT打印机描述 WHT NetMeeting白板文档
SPL 假脱机文件 WIN 窗口文件
SPR 生成的屏幕程序 WIZ Word向导
SPT SUPER-STAR图形版面文件 WLL Word加载项
SPX 编译后的屏幕程序 WPC 写字板文档转换
SQL SQL *PLUS命令文件 WPS 文字处理系统WPS建立的文件
SWP 虚拟内存交换文件 WRI Windows书写器文档
SYM 符号调试定义文件 WRL 虚拟现实模型语言对象
SYS 系统控制文件 XAB Microsoft邮件地址薄
TAR UNIX合并文件 XBM 图形格式文件
TBK 备注备份 XLA Excel加载宏
TBL 词典文件 XLB Excel工作表
TGZ 一种先合并后压缩的文件 XLC Excel图表
TIF 图形图像文件 XLD Excel对话框
TMP 临时文件 XLK Excel备份文件
TRN 翻译文件 XLM Excel宏文件
TQT 压缩文件 XLS Excel工作表
TSP 电话服务提供者 XLT Excel模板
TTC TrueType合成文件 XLV Excel VBA模板
TTF True Type字体文件 XLW Excel工作表
TXT 文本文件 XSL 分层文件
ULS 用户定位服务 ZIP 由PKZIP压缩的文件
URL Internet快捷方式 ZOO 用于在交互式平台转换的一种文件格式

DIB Paint Shop Pro映象文件 H C编译头文件
DIC 字典文件 HDX Macintosh BinHex文件
DIF 变化备份设置目录文件 HEX 十六进制数据文件
DIR 目录文件 HGL Paint Shop Pro映象文件
DLL WINDOWS动态链接库文件 HIS 历史文件
DMP Oracle二进制格式备份文件 HLP 图形方式帮助文件
DOB 用户文本文件 HPJ 帮助Project文件
DOC 文档文件 HPP C/C++头文件
DOS DOS文件 HT 超级终端文件
DOT 文档文件 HTM Internet超文本标记语言
DOX 用户文本文件 ICC 图像配色描述文件
DRV 设备驱动文件 ICO 图标文件
DRW Paint Shop Pro映象文件 IDE Borland C++ Project文件
DSN ODBC数据库文件 IDF MIDI乐器文件
DUN 由拨号网络导出的文件 IDX 索引数据文件
DWG AUTOCAD图形文件 IMD 编码字典文件
DXF Paint Shop Pro映象文件 IME 输入法文件
EML INTERNET电子邮件 IMG 磁盘镜像文件
EPS 压缩的附录文件 INC 包含文件
ERR 出错记录文件 INF 安装信息
EXC 文本文件 INI 初始化参数文件
EXE 可执行文件 INP SQL *FORMS正文文件
FKY 宏 INS INTERNET通讯设置文件
FLL FOXPRO动态链接库 ISP INTERNET通讯设置文件
FMT dBASE或FoxBase屏幕格式文件 JOR 日志文件
FND 保存的搜索结果 JPE JPEG图像格式文件
FNT 字形数据文件 JPG 静态图形压缩格式文件
FON 字形数据文件 KBD 键盘布局
FOR FORTRAN语言源程序文件 KEY 加密钥文件
FOT 指向字体的快捷键 LBL dBASE标签格式文件
FOX FOXBASE编译目标文件 LBT 标签备注
FPT 表备注 LBX 标签
FRM 报表格式文件或SQL*FORMS二进制文件 LGO WINDOWS标识
FRT 报表备份 LHA 用LHARC压缩的文件
FRX 报表 LIB 库文件
FUL 全盘备份设置目录文件 LNK 静态快捷键
FUN 功能菜单文件 LOG 日志文件
FXP Visual FoxPro 3.0编译程序 LST 列表文件
GEM Paint Shox Pro映象文件 LZH 用LHARC压缩的文件
GIF 图形交换文件 MAC 宏定义文件
GR3 Windows 3.X屏幕捕捉器 MAP 映象文件
GRA 图形数据文件 MB 码表文件
GRP Microsoft程序组 MCC 访问The Microsoft Network的快捷方式
GZ 用GNZ ZIP打包的文件 MCI MCI命令集

什么是文件名后缀
说起来Windows工作界面下的文件名简直是随心所欲,比如:某编辑部的2000年工作计划。文件名即可用中文直接表达,而且长度最长可达256个字符,让人看起来真是一目了然。然而在Windows环境中,安装的软件中却大量存在着类似CALENDAR.EXE、GAMES.GRP等等的文件名,这又是为什么呢?原来这些文件名都是根据DOS环境的文件名命名规则而定的。

DOS环境下的文件名

在DOS 下,文件名采用8+3结构,即:最长8位的文件名,由小数点分隔后再跟上最长3位的后缀名,如:READ.ME、SETUP.EXE,一般情况下文件名不允许使用汉字,只能由字母、数字和一些符号组成。如READ.ME用中文理解就是"读我",即提示用户在使用软件前先看看这个文件的内容,以获取更多的提示信息。而更重要的是,DOS下规定用后缀名来区分各种不同的文件。

在DOS下最容易遇到的首先是可执行文件,后缀名有两类:*.exe、*.com(此处的*表示文件名任意),它们是由汇编语言或其它高级语言编出的程序经过编译后直接在DOS下运行的文件。有时由于软件功能多、内存偏小,不能一次性全部调入内存还可能有同文件名的ovl文件,如ws.exe、 ws.ovl。另外还有一种文件可以直接运行,*.bat,即批处理文件,其中有许多命令或可执行文件名,主要用于提高工作效率,其中最有用的是 Autoexec.bat,这个文件在开机时会被自动执行(自动执行在英文中就是Automatically execute)。而另外一种可以加载但不能直接运行的文件即是系统扩展管理文件*.sys(sys即系统system),它主要提供某些非标准设备如鼠标、扩充内存等的驱动程序,如mouse.sys、himem.sys。为了统一管理还专门规定了一个config.sys的文本文件来一次性地在开机时自动调入这些必需的设备驱动程序,这些文件一旦被误删或换名或被病毒侵袭则将直接导致系统工作不正常。

DOS下字处理产生的文件原本是可以不用后缀的,但人们常用*.txt表示(txt即文本text)。被所有的平台和所有应用程序支持。而为了管理方便,人们也可以用自己的名字做后缀来表示是自己建的文本文件,如我输入的很多文章即为*.mcj,为了便于用户在意外删掉原文件的情况下能尽快恢复原文件,许多字处理系统都提供了一种自动备份的功能,如我第二次编辑JIHUA.MCJ时(JIHUA:计划的汉语拼音),系统会先拷贝一份原文件为JIHUA.BAK。使用具有特殊格式功能的字处理软件,如求伯君先生早年推出的WPS,就会规定其后缀为.wps,用以标识是用WPS生成的文本文件。当使用字处理软件编辑高级语言程序时,后缀通常为相应语言的前三个字母(如:*.BAS即BASIC语言源程序,*.PAS为PASCAL语言程序,*.FOR为Fortran语言程序,*.C即为 C语言,*.ASM即为汇编语言程序)。

伴随着可执行文件常附有以下几类文件:*.HLP即帮助文件(help)、*.CFG即配置文件(config)、*.DAT即数据文件(data)、*.LOG即日志文件(log)、*.TMP为临时文件(temporal)。

Windows环境下的文件名

绝大多数DOS文件名后缀在Windows下继续有效,但Windows本身也引出了许多种崭新的后缀名,如:*.drv为设备驱动程序 (Driver)、*.fon和*.fot都是字库文件、*.grp为分组文件(Group)、*.ini为初始化信息文件 (Initiation)、*.pif为DOS环境下的可执行文件在Windows下执行时所需要的文件格式、*.crd即卡片文件(Card)、 *.rec即记录器宏文件(Record)、*.wri即文本文件(Write),它是字处理write.exe生成的文件、*.doc和*.rtf也是文本文件(Document),它们是Word产生的文件、*.cal为日历文件、*.clp是剪贴板中的文件格式、*.htm和 *.html即主页文件、*.par为交换文件、*.pwl为口令文件(Password)等等。

图像文件名后缀

进入多媒体世界后,大家会看到各种各样精彩的图片,会发现许多种后缀名。的确,由于各个公司在开发图形有关的软件时都自制标准,导致今日在图形方面有太多的格式,以下就是常见的几种格式: 首先是一种位图文件格式,它是一组点(像素)组成的图像,它们由图像程序生成或在扫描图像时创建。主要有Windows位图(.BMP):由 Microsoft公司开发,它被Windows和Windows NT平台及许多应用程序支持。支持32位颜色,用于为Windows界面创建图标的资源文件格式,光标(.CUR、.DLL、.EXE):资源文件格式,用于创建Windows界面的光标。OS/2位图(.BMP):Microsoft公司和IBM开发的位图文件格式。它为各种操作系统和应用程序所支持。支持压缩,最大的图像像素为64000×64000。画笔(.PCX):由Zsoft公司推出,它对图像数据也进行了压缩,可由PCX生成。用于 Windows的画笔。支持24位颜色,最大图像像素是64000×64000。支持压缩。图形交换格式:

Graphics Interchage Format(.GIF):由Compu Serve创建,它能以任意大小支持图画,通过压缩可节省存储空间,还能将多幅图画存在一个文件中。支持256色,最大图像像素是64000×64000。

Kodak Photo CD(.PCD):Eastman Kodak所开发的位图文件格式,被所有的平台所支持,PCD支持24位颜色,最大的图像像素是2048×3072,用于在CD-ROM上保存照片。

Adobe Photoshop(.PSD):Adobe Photoshop的位图文件格式,被Macintosh和MS Windows平台所支持,最大的图像像素是30000×30000,支持压缩,广泛用于商业艺术。

Macintosh绘画(.MAC):Apple公司所开发的位图文件格式。被Macintosh平台所支持,仅支持单色原图,最大图像像素是576×720。支持压缩,主要用于在Macintosh图形应用程序中保存黑白图形和剪贴画片。

动画文件的后缀名

动画文件格式用于保存包含动画框架中的图形信息。主要有:Autodesk FLIC(.FLC):即.FLI,Autodesk Animator和AnimatorPro的动画文件格式。支持256色,最大的图像像素是64000×64000,支持压缩。广泛用于动画图形中的动画序列、计算机辅助设计和计算机游戏应用程序。不大适合制作真实世界图像动画。

MacPICTS(.PCS,.PIC):Macromedia开发的动画文件格式,为Macintosh应用程序使用。支持256色,支持压缩,用于保存动画数据,是Quick Time的前身。

Microsoft资源互换文件格式,TIFF(.AVD):Microsoft公司开发的动画文件格式,被Windows、Windows

NT平台和OS/2多媒体应用程序所支持,支持256色和压缩,用于在多媒体应用程序中保存音频、视频和图形信息。

MPEG(.MPEG):国际标准化组织的运动图像专家小组开发的动画文件格式。被所有平台和Xing Technologies

MPEG播放器及其它应用程序所支持,支持压缩,最大图像像素是4095×4094×30帧/每秒。用于编码音频、视频、文本和图形数据。

Quick Time(.QTM):Apple计算机公司开发的动画文件格式。被Apple Macintosh和Microsoft

Windows平台所支持,支持25位颜色,最大图像像素是64000×64000,支持压缩,用于保存音频和运动视频信息。

声音文件的后缀名

声音文件格式是用于保存数字音频信息的。它们主要有:

AIFF(.AIF):这是Apple计算机公司开发的声音文件格式,被Macintosh平台和应用程序所支持。支持压缩。

Amiga声音(.SVX):Commodore所开发的声音文件格式,被Amiga平台和应用程序所支持,不支持压缩。

MAC声音(.SND):Apple计算机公司开发的声音文件格式,被Macintosh平台和多种Macintosh应用程序所支持,支持某些压缩。

MIDI(.MID):国际MIDI协会开发的声音文件格式,被Windows平台和许多应用程序所支持,用于为乐器创建数字声音。

声霸(.VOC):Creative Labs公司开发的声音文件格式,被Windows和DOS平台所支持,支持压缩。

WAVE(.WAV):微软公司用作Windows平台上保存音频信息的资源格式。 压缩文件的后缀名

为了提高存储效率,许多公司都推出了压缩数据的方法和相应的软件,这类文件的使用主要通过压包和解包软件来进行,主要的后缀有:*.zip、 *.arj、*.rar、*.lzh、*.jar。还有一些专用的压缩文件,如:*.ex_、*.dl_、*.d3_、*.cab等。

数据库类文件的后缀名

在Dbase、FoxBase、Foxpro系列软件的环境下有以下几类后缀:

.dbf 数据库文件(databasefile) .prg 命令文件(即程序Program)

.fxp 编译后的程序 .scx和.sct 屏幕文件

.fpt 备注字段文件 .frx和.frt 报表文件

.cbx和.pjt 标签文件 .mnx 和.mnt 菜单文件

.pjx和.pjt 工程文件 .app 应用文件

.cdx和.idx 索引文件 .qpr和.qpx SQL查询文件

.fp 配置文件 .ap 生成应用

.err 编译错误文件 .men 内存应用

.fky 键宏文件 .win 窗口文件

.pcb 库文件 .tmp 临时文件

.tbk 临时数据库文件

可安全删除的文件类型

临时文件:*.tmp,*.syd,*.$$$,*.@@@,*._mp,*.gid,*.~*,*.gts

备份文件:*.bak,*.old,*.wbk,*.xlk,*.ckr_

帮助文件:*.hlp、*.chm、*.cnt 后记

用户要注意在不同的操作系统下,后缀名的约定会有所不同,如在Unix下,*.p代表Pascal语言程序,*.z代表压缩文件,*.tar代表归档文件。另外,针对极特殊的设备,其驱动程序也会有特殊的后缀,如3DS显示卡的驱动程序是*.exp。还有某些公司针对自己的产品也规定了文件名后缀,如方正公司的图像排版文件规定用*.grh(即Graph)。

文件名的后缀代表着某一种类型的文件,一般会由某一种特定的软件产生和处理。只有对这些后缀名的知识有一定的了解,才能在上机的过程中知道其所以然。这儿带着大家看到了常见的一些后缀类型,实际上还有很多类型,不可能全部讲完。常言说,师傅领进门,修行在个人,以后大家在计算机世界中自己转着看吧。

常见的文件后缀名

.ACA

Microsoft的代理使用的角色文档

.acf

系统管理配置

.acm

音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能

.aif

声音文件,支持压缩,可以使用Windows Media Player和QuickTime Player播放

.AIF

音频文件,使用Windows Media Player播放

.AIFC

音频文件,使用Windows Media Player播放

.AIFF

音频文件,使用Windows Media Player播放

.ani

动画光标文件扩展名,例如动画沙漏。 .ans

ASCII字符图形动画文件

.arc

一种较早的压缩文件,可以使用WinZip,WinRAR,PKARC等软件打开

.arj

压缩文件。可以使用WinZip,WinRAR,PKARC等软件打开

.asf

微软的媒体播放器支持的视频流,可以使用Windows Media Player播放

.asp

微软的视频流文件,可以使用Windows Media Player打开

.asp

微软提出的Active Server Page,是服务器端脚本,常用于大型网站开发,支持数据库连接,类似PHP。可以使用Visual InterDev编写,是目前的大热门

.asx

Windows Media 媒体文件的快捷方式 .au

是Internet中常用的声音文件格式,多由Sun工作站创建,可使用软件Waveform Hold and Modify 播放。Netscape Navigator中的LiveAudio也可以播放.au文件

.avi

一种使用Microsoft RIFF规范的Windows多媒体文件格式,用于存储声音和移动的图片

.bak

备份文件,一般是被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本,并且具有于该文件相同的文件名

.bas

Basic 语言源程序文件,可编译成可执行文件,目前使用Basic开发系统的是Visual Basic

.bat

批处理文件,在MS-DOS中,.bat文件是可执行文件,有一系列命令构成,其中可以包含对其他程序的调用 .bbs

电子告示板系统文章信息文件

.bfc

Windows的公文包文件

.bin

二进制文件,其用途依系统或应用而定

.bmp

Bitmap位图文件,这是微软公司开发Paint的自身格式,可以被多种Windows和Windows NT平台及许多应用程序支持,支持32位颜色,用于为Windows界面创建图标的资源文件格式。

.c

C 语言源程序文件,在C语言编译程序下编译使用

.cab

Microsoft制订的压缩包格式,常用于软件的安装程序,使用Windows自带的实用程序,Extract.exe可以对其解压缩,WinZip,WinRAR等都支持这种格式

.cal

Windows 中的日历文件

.cdf

Internet Explorer的频道文件

.cdr

CorelDraw中的一种图形文件格式,它是所有CorelDraw应用程序中均能够使用的一种图形图像文件格式

.cdx

索引文件,存在于Dbase,Foxbase,Foxpro系统软件环境下

.cfg

配置文件,系统或应用软件用于进行配置自己功能,特性的文件

.chm

编译过后的HTML文件,常用于制作帮助文件和电子文档

.clp

在Windows下剪贴板中的文件格式

.cmd

用于Windows NT/2000的批处理文件,其实与BAT文件功能相同,只是为了与DOS/Windows 9x下的BAT有所区别

.cmf

声卡标准的音乐文件,FM合成器等可以回放

.cnf

NetMeetting会议连接文件

.cnt

联机帮助文件目录索引文件,通常和同名的.hlp文件一起保存

.col

由Autodesk Animator,Autodesk Animator Por等程序创建的一种调色板文件格式,其中存储的是调色板中各种项目的RGB值

.com

DOS可执行命令文件,一般小于64KB

.cpl

控制面板扩展文件,Windows操作系统使用

.cpp

C++语言源程序,非常强大的语言,在各种平台中都有相应的开发系统

.crd

Windows中的卡片文件

.crt

用于安全方面的证书认证文件

.cur

Windows下的光标资源文件格式,可用光标编辑软件编辑

.css

Text/css文件

.dat

数据文件,在应用程序中使用

.dat

VCD中的图象声音文件,VCD播放软件可调用,或是通过VCD机播放

.dbf

数据库文件,Foxbase,Dbase,Visual FoxPro,等数据库处理系统所产生的数据库文件

.dcx

传真浏览文档文件

.ddi

映象文件,DUP,HD,IMG等工具可展开

.dev

设备驱动程序

.dib

设备无关位图文件,这是一种文件格式,其目的是为了保证用某个应用程序创建的位图图形可以被其它应用程序装载或显示一样

.dir

目录文件

.dll

Windows动态连接库,几乎无处不在,但有时由于不同版本DLL冲突会造成败各种各样的问踢

.doc

是目前市场占有率最高的办公室软件Microsoft Office中的字处理软件Word创建的文档

.dos

Windows保留的MS-DOS的某些系统文件

.dot

Microsoft Word的文档模板文件,通过模板可以简化一些常用格式文档的创建工作,而且可以内嵌VBA程序来实现某些自动化功能

.drv

设备驱动程序文件,用在各种系统中

.dwg

AutoCAD的图纸文件,也是许多绘图软件都支持的格式,常用于共享数据

.dxb

AutoCAD创建的一中图形文件格式 .dxf

图形交换格式,一种计算机辅助设计的文件格式,最初开发用来与AutoCAD一起使用,以便于图形文件在应用程序之间的传递,它以ASCII方式储存图形,在表现图形的大小方面十分精确

.der

Certiticate文件

.dic

Txt文件

.emf

由Microsoft公司开发的Windows 32位扩展图元文件格式

‘叁’ 奢侈品vic是什么意思

VIC是Very Important Client的缩写,是指超级贵宾,其意义等同于VIP,即very important person,是指“贵宾”,“贵客”、“重要人士”、“高级用户”、“高级会员”。成为奢侈品牌的VIP可以优先购买产品,也有权利购买本季度限量款。

VIP的起源:1、VIP的用语起源于上个世纪80年代,来源有几种说法:据说在第二次世界大战中,英国的运输部队用飞机运载许多重要人物前往中东时,基地的指挥官为了保护他们的身份秘密而创造了VIP这个简称。

2、当时电子邮件在美国一些发达地区很流行,人们没事就发一封快捷简单便宜的邮件向朋友问候,一些人在发送邮件的时候不想让其他人知道邮件的内容所以就把邮件标名为Very important person。

3、Very Important Person是二战时英国皇家空军用来运送高级任务的代码,最早是用于运送蒙哥马利(非本人而是替身克利夫顿·詹姆斯)到非洲去。此计划阶段性影响了诺曼底登陆,展开盟军反攻。

‘肆’ keil编写中断向量服务地址时编译提示中断函数名未定义

Eint1_Init函数使用了ISR_Eint1标识符,但是该标识符声明是在函数Eint1_Init下面的,所以会报ISR_Eint1未定义的错,只要在函数Eint1_Init之前这样声明:void __irq ISR_Eint1 (void) ;就可以了.
另外:
for(j=0;j<5;j++;)
这句,j++后面多了一个分号

‘伍’ vic什么意思

VIC(Variable Infiltration Capacity)模型是由Washington大学、California大学Berkely分校以及Princeton大学的研究者基于Wood等人的思想共同研制出的大尺度分布式水文模型,也可以称之为“可变下渗容量模型”。

VIC模型可同时对水循环过程中的能量平衡和水量平衡进行模拟,弥补了传统水文模型对能量过程描述的不足。在实际应用中,VIC模型也可只进行水量平衡的计算,输出每个网格上的径流和蒸发,再耦合汇流模型将网格上的径流转化为流域出口断面的流量过程。

(5)vic怎么编译源文件扩展阅读:

水文现象和水文规律十分复杂,利用实体场景研究水文过程变化规律,以及某些要素物理性质的模型称为水文物理模型。水文实验是水文物理模型的核心环节,它是为探求和研究水文现象和过程并对其作出成因分析的科学实验。

水文现象受许多自然因素制约和人类活动影响,一般的水文观测和分析难以清楚地揭示其物理过程和相互关系,需要在野外或实验室内用特定的程序、装置和设备进行系统的、有控制的观测和试验。

水文实验研究的主要目的在于揭示天然条件下和人类活动影响下水文现象的物理机制,以及各种水文要素之间的相互联系;在研究现有水文学理论和应用中有待认识和解决的问题;检验已有的规律与理论。

‘陆’ 什么是ⅴIc

vic是一个多义词,所代表的意思分别是:

1、VIC指的是游戏软件:

《VIC》是一款模拟器应用。1981年Commodore发布了家用计算机VIC-20,是Linux创始人托瓦兹第一台计算机。

2、VIC指的是VIC:
全称为Variable Infiltration Capacity,是由Washington大学、California大学Berkely分校以及Princeton大学的研究者基于Wood等人的思想共同研制出的大尺度分布式水文模型。

3、V字队形飞行

‘柒’ 学习ASP应该具备什么知识

一、Application对象的成员概述

Application对象成员包括Application对象的集合、方法和事件。

⒈Application对象的集合

Contents集合:没有使用元素定义的存储于Applicaiton对象中的所有变量的集合
StaticObjects:使用元素定义的存储于Application对象中的所有变量 的集合
例:在default.asp中有如下赋值
application("a")="a"
application("b")=128
application("c")=false

则有contents集合
application.contents(1)="a" '也可写为application.contents("a")="a"
application.contents(2)=128 '也可写为application.contents("b")=128
application.contents(3)=false '也可写为application.contents("c")=false

在此笔者推荐你在调用时使用类如application.contents("a")的方法,因为这样更为直观,如果用序号来表示的话则要考虑赋值的先后顺序。

⒉Application对象的方法

Contents.Remove("变量名"):从Application.Contents集合中删除指定的变量
Contents.RemoveAll() :把Application.Contents集合中的所有变量删除
Lock() :锁定Application对象,使得只有当前的ASP页对内容能进行访问
Unlock() :解除对Application对象的锁定
例:在default.asp中:
application("a")="a"
application("b")=128
application("c")=false
response.write application.contents(1)&"
"
response.write application.contents(2)&"
"
response.write application.contents(3)&"
"
response.write "After Remove b:"
application.contents.remove("b")
response.write application.contents(1)&"
"
response.write application.contents(2)&"
"

执行结果:
a
128
False
After Remove b:
a
False
如果要删除集合中所有变量用application.contents.removeall即可,至于Lock和Unlock方法在实际中经常用到,读者也比较熟悉,在此就不在累赘。

⒊Application对象事件

OnStart:第一个访问服务器的用户第一次访问某一页面时发生
OnEnd :当最后一个用户的会话已经结束并且该会话的OnEnd事件所有代码已经执行完毕后发生,或最后一个用户访问服务器一段时间(一般为20分钟)后仍然没有人访问该服务器产生。
想要定义application对象的OnStart和OnEnd事件里做什么需要将代码写在Global.asa这个文件里(下文有举例),并且将该文件放在站点的根目录下(一般是Inetpub\wwwroot\)

二、Session对象的成员概述

Session对象的成员比Application对象多一项属性,即:集合、属性、方法、事件

⒈Session对象的集合

Contents :没有使用元素定义的存储于特定Session对象的所有变量的集合。
StaticObject:使用元素定义的、存储于Session对象中的所有变量的集合。
例:在default.asp中有如下赋值
session("a")="a"
session("b")=128
session("c")=false

则有contents集合
session.contents(1)="a" '也可写为session.contents("a")="a"
session.contents(2)=128 '也可写为session.contents("b")=128
session.contents(3)=false '也可写为session.contents("c")=false

⒉Session对象的属性

CodePage: 可读/可写。整型。定义用于在浏览器中显示页内容的代码页。代码页是字符集的数字值,不同的语言使用不同的代码页。例如,ANSI代码页为1252,日文代码页为932,简体中文代码页为936。
LCID : 可读/可写。整型。定义发送给浏览器的页面地区标识。LCID是唯一地标识地区的一个国际标准缩写,例如,2057定义当前地区的货币符号是"£"。
SessionID: 只读。长整型。返回本会话的会话标识符。每创建一个会话,由服务器自动分配一个标识符。可以根据它的值判断两个用户是谁先访问服务器。
Timeout : 可读/可写。整型。为会话定义以分钟为单位的超时限定。如果用户在这个时间内没有刷新或请求任何一个网页,则该用户产生的会话自动结束。缺省值是20。
以上属性在实际应用中作用不大,而且基本上不需要怎么修改,这几个属性也没什么特殊的地方。

⒊Session对象的方法

Contents.Remove("变量名"): 从Session.contents集合中删除指定的变量
Contents.Removeall() : 删除Session.contents集合中的所有变量
Abandon() : 结束当前用户会话并且撤消当前Session对象。
Session对象的Contents.Remove("变量名")和Contents.Removeall()方法与Application对象的基本上没什么区别,为帮助理解,大家可以参照上面的例子将Application改为Session。这里要说明一下的是Contents.Removeall()和Abandon()的区别,执行这两个方法都会释放当前
用户会话的所有Session变量,不同的是Contents.Removeall()单纯地释放Session变量的值而不终止当前的会话,而Abandon()除了释放Session变量外还会终止会话引发Session_OnEnd事件,希望大家注意两者的区别。

⒋Session对象的事件

OnStart: 当ASP用户会话产生时触发,一旦有任一用户对本服务器请求任一页面即产生该事件。
OnEnd : 当ASP用户会话结束时触发,当使用Abandon()方法或超时也会触发该事件。
这两个事件和Application的OnStart、OnEnd事件一样,也是必须放在Global.asa文件里,下
面就重点和大家研究一下这四个事件的使用。

三、Global.asa

ASP的Application和Session对象体现了其他ASP内置对象所没有的特征--事件。每一个访客访问服务器时都会触发一个OnStart事件(第一个访客会同时触发Application和Session的OnStart事件,但Application先于Session),每个访客的会话结束时都会触发一个OnEnd事件(最后一个访客会话结束时会同时触发Application和Session的OnEnd事件,但Session先于Application)。

OnStart和OnEnd这两个事件一般应用在虚拟社区中统计在线人数、修改用户的在线离线状态等。要具体定义这两个事件,需要将代码写在Global.asa文件,并将该文件放在站点的根目录下(缺省是\Inetpub\wwwroot\)。另外,Application和Session对象规定了在OnEnd事件里除了Application对象外其他ASP内置对象(Response、Request、Server、Session...)一概不能使用。以下举一个虚拟社区统计在线人数的例子来说明如何使用这两个事件。

文件说明:
global.asa 位于d:\Inetpub\wwwroot\目录下
default.asp 位于d:\Inetpub\wwwroot\目录下,虚拟社区登录页面
login.asp 位于d:\Inetpub\wwwroot\目录下,用于检测用户输入的用户名及密码
index.asp 位于d:\Inetpub\wwwroot\目录下,虚拟社区首页
bbs.mdb 位于d:\Inetpub\wwwroot\目录下,存储用户信息的数据库

数据库(ACCESS)结构:
===bbs表===
id 用户ID,长整型
name 用户名,文本型
code 密码,文本型
online 在线状态,是/否
===global.asa===
<script LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
application("online")=0
End Sub
sub Application_OnEnd
nd Sub
Sub Session_OnStart
End Sub
Sub Session_OnEnd
if session.contents("pass") then '判断是否为登录用户的Session_OnEnd
application.lock
application("online")=application("online")-1
application.unlock
end if
End Sub
</script>
===login.asp===
......'密码验证,连接数据库,检测用户输入的用户名及密码是否正确
if 密码验证通过 then
session("name")=rs("name")
session("id")=rs("id")
session("pass")=true
else
rs.close
conn.close
response.write "密码错误!"
response.end
end if
application.lock
application("online")=application("online")+1
conn.Execute ("update bbs set online=1 where id="&session("id"))'将用户的状态设为在线
application.unlock
rs.close
conn.close
response.redirect "index.asp" '初始化数据后跳转到社区首页
===========

在本例中,用application("online")变量记录已经登录社区的在线人数,因为一旦有用户访问服务器而不管用户是否登录,都会产生OnStart事件,所以不能在OnStart事件里使Applicaiton("online")加一。因为不管是否是登录用户的会话结束都会产生OnEnd事件(假如有访客访问了服务器但并不登录社区,他的会话结束后也会产生OnEnd事件),所以在Session_OnEnd事件里用了句if语句来判断是否为已登录用户的OnEnd事件,如果是才将在线人数减一。
这只是一个统计在线人数的简单例子,对于一个完整的虚拟社区来说,仅仅统计有多少人在线是不够的,在本例中数据库里有个online字段是用来记录用户的在线状态,用户登录的时候,在login.asp里将online设为1,但用户离线时并没有将online设为0,要完善它,就要修改一下Session_OnEnd事件,在该事件里将online设为0。
===global.sas===
<script LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
application("online")=0
set application("conn")=Server.CreateObject("ADODB.Connection")
application("db")=Server.MapPath("\bbs.mdb") '此处最好使用绝对路径\bbs.mdb,下文有详细介绍
End Sub
sub Application_OnEnd
set application("conn")=nothing
End Sub
Sub Session_OnStart
End Sub
Sub Session_OnEnd
if session.contents("pass") then '判断是否为登录用户的Session_OnEnd
application("con").open ="driver={Microsoft Access Driver (*.mdb)};dbq="&application("db")
application.lock
application("online")=application("online")-1
application("con").Execute ("update friends set online=0 where id="&session.contents("id"))
application.unlock
application("con").close
end if
End Sub
</script>
==============

至此,完整的代码已经完成了。因为在Application和Session的OnEnd事件里不能使用Server对象,所以要将数据库的连接及数据库在服务器上的物理地址(d:\inetpub\wwwroot\bbs.mdb)存储在application变量中,并在Application_OnStart事件中预先处理。同理,在Session_OnEnd事件中不能用session("pass")来代替session.contents("pass")(以下有详尽说明)。
四、本文实例中值得引起注意的两点

⒈OnEnd事件里的session.contents
刚开始接触global.asa的朋友经常会将上面Session_OnEnd事件里的
if session.contents("pass") then 写成
if session("pass") then,

这样的话系统不会提示错误,但是永远也不会执行then后面的内容,这是因为在OnEnd事件里禁止使用Session对象,但是可以用Session对象的集合来调用session变量。因为IIS并没提示任何错误信息,所以笔者曾经在这上面浪费了很多时间。在此希望大家引以为鉴!
⒉Application_OnStart事件里用Server.MapPath获取数据库的物理地址时应使用绝对地址为了说明这个问题,大家可以做个实验:将上面Application_OnStart事件里的
application("db")=Server.MapPath("\bbs.mdb")改为:
application("db")=Server.MapPath("bbs.mdb")

然后在d:\inetpub\wwwroot\目录下建立一个test子目录,写一个temp.asp在test目录里。
====test.asp====
<%response.write application("db")%>
================

再将temp.asp拷贝一份放在根目录下(d:\inetpub\wwwroot\)。用记事本打开global.asa,再打开两个浏览器,浏览器A输入地址http://localhost/temp.asp,按回车,将在浏览器上输出:
d:\inetpub\wwwroot\bbs.mdb

然后,在记事本的窗口上点"文件"菜单,选"保存"(使global.asa的修改时间改变,从而使IIS重启动所有服务),再在浏览器B输入地址http://localhost/test/temp.asp,按回车,在浏览器上输出的是:
d:\inetpub\wwwroot\test\bbs.mdb

global.asa文件虽然是放在站点根目录下,但是如果在server.mappath中使用的是相对地址,而触发Application_OnStart事件的用户第一次访问的页面又不是属于根目录的话,得到数据库的物理地址将不会是期望的结果,希望大家要特别小心。

类别:Web | 编辑 | 删除

| 评论(0) | 浏览(0)

全面解析ASP Server对象
2007-07-27 12:40
Server对象提供对服务器上访问的方法和属性.大多数方法和属性是作为实用程序的功能提供的。
语法:
Server.property|method
属性(property)
Server对象只有一个属性:ScriptTimeout 程序能够运行的最大时间
方法(Methods)
CreateObject 建立一个对象实例.
Execute 执行一个asp文件
GetLastError 返回一个错误代码
HTMLEncode 对指定的HTML代码进行转换.
MapPath 将一个相对路径转化为一个绝对路径.
Transfer 将当前的所有状态信息发送给另一个asp文件
URLEncode 以URL形式转化指定的代码,包括空格
Server对象的方法详细说明
CreateObject
语法
Server.CreateObject( progID )
参数
progID
指定要创建的组件名称,格式如下: [Vendor.]Component[.Version].
要点:
一般来说,用由Server.CreateObject方法创建的对象拥有页面的范围.这就说,当这页的asp程序执行完后,这种对象会自动地消失.
为了创建一个拥有Session或Application范围的对象,你可以在Global.asa文件中使用
Execute
Execute 方法呼叫一个ASP文件并且执行它就像这个呼叫的ASP文件存在这个ASP文件中一样。这很像许多语言中的类的调用。
语法
Server.Execute( Path )
参数
Path
指定执行的那个asp文件的路径。如是它是一个绝对路径,那么它必须是一个在这个ASP应用程序相同的地方(目录)。
讲解
Server.Execute 方法提供了一种将一个复杂ASP应用程序分化为小块单位来执行的方法。通过这种方法,你能够建一个ASP图书馆,你能够随便在你需要时调用你图书馆中的ASP文件。这个就有点像SSI了!嘿嘿!
当IIS根据指定的ASP文件路径执行完这个ASP文件之后,就会自动返回以前的ASP文件。这个刚刚执行完的ASP文件有可能改变了HTTP head.但是和其它的ASP文件一样,当程序试图改变http head时,就会报错!
这个path参数可以包括一个询问信息。
如果在被呼叫和呼叫的ASP文件中都含有相同的子函数,那么这些子函数只在本ASP文件中起作用。举个例子,如果在下面的ASP1和ASP2两个文件中都含有放弃程序的子函数。首先ASP1呼叫ASP2,那么ASP2中的的OnTransactionAbort开始执行,当ASP2执行完毕,ASP1中的OnTransactionAbort才开始执行。

ASP1:
< %@ Transaction=
Required
%>
< %
Server.Execute ("Page22.asp")
Sub OnTransactionAbort
Sub OnTransactionCommit
%>

Asp2.asp:
< %@
Transaction=Required
Sub OnTransactionAbort
Sub OnTransactionCommit
%>

Example

ASP1
< % Response.Write("I am going to execute ASP2 ")
Server.Execute("/myasps/asp2.asp")
%>
ASP2
< % Response.Write("Here I am")%>

GetLastError
GetLastError 方法返回一个ASPError Object 来描述一个错误信息.这个方法只适用于在asp文件发送任何内容给用户机之前.
语法
Server.GetLastError ()
要点
如果一个500;100 用户错误已经被定义在一个asp应用程序中,它是指的一个以.asp为后缀的文件。这种情况下,在这个程序运行时当一个错误发生时,服务器就会自动的以Server.Transfer这种方式传送到这个正在执行的ASP页面。ASP应用程序就会将有效的处理这个错误。另外,这个ASPError Object一定要有效,这样你就能够看到服务器提供给你的错误信息来改这个文件了!
一般的Web Site 都是根据文件\iishelp\common\500-100.asp来构造的。你能够用它来执行一个asp错误,当然你能够自己定义了!。如果你想改变为另外一个asp文件的来执行这些用户错误。那么你可以用IIS中的snap-in.
注意:当IIS发现了一个asp文件或者global.asa文件中的一个错误,那么一个500;100用户错误产生。以下的程序将不能执行!
Example
下面的三个例子证明不同的错误会产生的用户错误。三个错误是:
编译错误
运行错误
逻辑错误
第一个例子证明了一个编译错误,就是当IIS试图包含一个文件时产生的。这个错误会产生是因为在这个包含文件中没有定义所需的参数。第二个例子显示的是一个运行错误,这个程序中断的原因是程序中没有“next".第三个例子显示的是一个逻辑错误,因为这个程序试图除以一个0. 不行啦!

Example 1
< %
response.write "hello"
%>
Example 2
< %
dim I
for i=1 to 1
nxt
%>
Example 3

< %
dim i,j
dim sum
sum=0
j=0
for i=1 to 10
sum=sum+1
next
sum=sum/j
%>
HTMLEncode
HTMLEncode方法对指定的字符串进行HTML编码.
语法
Server.HTMLEncode( string )
参数
string 要进行编码的字符
例子
下面的程序:
< %= Server.HTMLEncode("The paragraph tag: ") %>

输出为:
The paragraph tag:
注意 程序执行后在浏览器中看到的是:
The paragraph tag:
但是如果你用"查看源文件"看一下的话,源代码就不是了.
MapPath
MapPath 方法将相对路径转化为服务器上的物理路径
语法
Server.MapPath( Path )

参数
Path
相对路径。这个路径是以"/"或"\"开头的路径,如果这个路径中没有"\",那么MapPath方法就会返回以当前目录为基础的路径。
讲解
MapPath 方法不能检查路径在这个服务器下是否存在。因为 MapPath 转化路径时是不管这个路径是否在这个服务器下存在的。
你能够用它来将一个相对路径转化为一个物理路径,然后再在这个路径下进行各种操作。
Example
在下面的例子中,data.txt文件存在 C:\Inetpub\Wwwroot\Script 目录中,而且一个test.asp 文件包括下面的代码。C:\Inetpub\Wwwroot 是该服务器的主目录 。
下面的例子中,首先用环境变量"PATH_INFO"获得当前文件的物理路径。
下面是Script 代码:
< %= server.mappath(Request.ServerVariables("PATH_INFO"))%>

显示为:
c:\inetpub\wwwroot\script\test.asp
因为下面的例子中路径参数没有以"/"开头,所以它是以当前目录转化的,asp文件是放在C:\Inetpub\Wwwroot\Script中的.以下是 scripts的内容:
< %= server.mappath("data.txt")%>
< %= server.mappath("script/data.txt")%>

显示为:
c:\inetpub\wwwroot\script\data.txt
c:\inetpub\wwwroot\script\script\data.txt

以下的两个例子是以"/"开头的.以下是scripts的内容:
< %= server.mappath("\script")%>

显示为:
c:\inetpub\wwwroot\script\data.txt
c:\inetpub\wwwroot\script

直接用"/"或"\"就会得到服务器的主目录:
< %= server.mappath("\")%>

显示为:

c:\inetpub\wwwroot
c:\inetpub\wwwroot

Transfer
transfer 方法会把一个正在执行的asp文件的所有信息传给另外一人asp文件。
语法
Server.Transfer (path)

参数
Path
将要接收信息的asp文件的位置。
要点
当你调用Server.Transfer时,所有内建对象的状态信息都会包含在这次传送之中。这就是说,所有在保存在Session或Application中的信息都会被传送,而且,所有当前请求的信息都会被接收信息的asp文件所接受。
Example
下面的例子示范了从一个asp文件传送到另一个asp文件例子!
ASP1

< % Dim sessvar1 Response.Write Session.SessionID
Response.Write ("")
Response.Write("I am going to ASP2 ")
Server.
Transfer
("/Myasps/ASP2.asp")
% >

ASP2
< % Response.Write Session.SessionID %>
URLEncode
URLEncode 方法可以将指定字符串进行URL编码。
语法
Server.URLEncode( string )

参数
string 指定要转化的字符串
Example
下面是代码:
< % Respones.Write(Server.URLEncode("http://www.microsoft.com")) % >

显示为:
http%3A%2F%2Fwww%2Emicrosoft%2Ecom
属性:ScriptTimeout
ScriptTimeout 属性规定了程序的最大运行时间。
语法
Server.ScriptTimeout = NumSeconds

参数
NumSeconds
规定了程序的最大的运行时间(以秒计算)。缺省值是90秒
Remarks
一个缺省的Scritpt Timeout的值会能过ASPScriptTimeOUT属性来设置在Web sertvic 或 Web server上。在程序中,ScriptTimeout属性的值不能小于这个缺省值。举个例子吧,如果NumSeconds我们设置为10秒,而缺省值为90秒,那么程序就会中止在90秒以后,而不是10秒以后的。同样,如果我们设置ScriptTimeout的值为100秒,那么,程序就会在100秒之后中止,而不是90秒。
Example
下面的例了中程序将被设置为100秒后自动中止。
< % Server.ScriptTimeout = 100 %>

下面的例子中将重新得到ScriptTimeout的值,然后把它存在Timout变量中
< % TimeOut = Server.ScriptTimeout %>

‘捌’ 如何编译c文件中调用 cython

以下总结出几种在python 中调用 C/C++ 代码的方法
--------------------------------------------------------------------
发现做便捷的是使用popen
from os import popen
popen('/home/pengyan/Downloads/VIC/sanxia/vicNl -g /home/pengyan/Downloads/VIC/sanxia/xings_global')
popen('/home/pengyan/Downloads/VIC/sanxia/rout /home/pengyan/Downloads/VIC/sanxia/xings_rout')
?? 目前还不会用python 切换文件目录
可以采用绝对路径,但是好像绝对路径时,计算速度变慢
-------------------------------------------------------------------
使用ctypes 模块调用 C 动态库
从Python2.5 开始, Python 开始提供 ctypes 模块来提供对 C 语言编译的动态库文件的调用。注意, 这里特指C 的动态库 ,用C++ 编译的动态库 ctypes 虽然能够加载,但调用时的函数名已经由于 C++ 的重载特性被加以修改,难以调用。 使用 ctypes 调用 C 动态库的好处在于不用进行额外的开发,可以直接使用编译好的动态库。 ctypes 提供了完整的 C 类型封装,也支持自定义类型,大大减少在调用过程中的工作量。 ctypes 的使用很简单,只需熟悉 python 封装与 C 中的对应关系即可。以下用一个简单的例子来说明:
from ctypes import * #导入ctypes模块
libc = cdll.LoadLibrary("libc.so.6") #加载libc动态库
str = c_char_p(' Hello World! ') #使用char *在ctypes中的对应封装c_char_p,相当于char* str=”Hello World!”
libc.printf(“yell: %s\n”, str ) #调用printf函数
ctypes的功能当然远不止这些,有兴趣的同学可以参考这里 http://docs.python.org/library/ctypes.html
使用Python 的扩展( Extending )机制
ctypes很方便地可以调用 C 的动态库,但是对 C++ 编译的动态库,调用起来很困难。这种情况利用 Python 的 Extending 机制就可以解决。 Python 提供了一套完整的框架来使用 C/C++ 编写扩展库,可以很灵活的开发 C++ 扩展模块。这种方法的缺点是工作量比较大,需要为每一个方法编写接口,这里不做详细介绍,可以参考: http://docs.python.org/extending/extending.html#writing-extensions-in-c
那么有什么办法可以高效的调用C++ 动态库呢,答案是 SWIG 。
使用SWIG 生成扩展模块
上面提到了Python 的扩展机制,缺点是工作量比较大,这里介绍一个工具 SWIG 。 SWIG 是一种简化脚本语言与 C/C++ 接口的开发工具,通过包装和编译 C 语言程序来达到与脚本语言通讯目的的工具。它正是基于 Python 的扩展机制,自动生成接口文件,再编译成可以被 Python 调用的动态库扩展模块。
使用SWIG 生成扩展模块分为以下几步:
将需要调用的代码编译成目标文件(.o) ;
用SWIG 读取编写描述文件 (.i) ,生成接口文件 (.cxx) ;
将接口文件编译为目标文件(.o) ;
将接口文件的目标文件和原代码段的目标文件一起编译成动态库 ;
假设有如下文件
swig_ex.cpp 需要转换成扩展库的原始代码,包含一个int fact(int) 函数
swig_ex.h 原始代码的头文件
swig_ex.i SWIG描述文件
swig_ex.i是一个描述文件,有 SWIG 自己的语法,比较简单,内容如下:

%mole swig_ex
%{
#define SWIG_FILE_WITH_INIT
#include "swig_ex.h"
%}
int fact(int n);
再写一个Makefile 来把这些文件编译成动态库 :

all: swig_ex.o swig_ex_wrap.o _swig_ex.so
swig_ex.o: swig_ex.cpp swig_ex.h #编译源文件
g++ -fPIC -c swig_ex.cpp
swig_ex_wrap.o: swig_ex.i swig_ex.o #根据 SWIG 描述文件 (.i) 生成接口文件 (.cxx) ,再编译之
swig -c++ -python swig_ex.i
g++ -O2 -fPIC -c swig_ex_wrap.cxx -I/home/work/linyi/autoframe/tool/python/include/python2.6/
_swig_ex.so: swig_ex_wrap.o #将目标文件打包成动态库
g++ -shared swig_ex.o swig_ex_wrap.o -o _swig_ex.so
.PHONY: clean
clean:
rm -rf swig_ex_wrap.* swig_ex.py _swig_ex.so
编译好以后会有一个so 和 py 文件,写一个 setup.py 把他们安装到 python 目录就可以和其他模块一样被 python 调用了:

Import swig_ex
swig_ex.fact(10)
参考文档地址:http://www.swig.org/Doc1.3/SWIGDocumentation.html
原始但有效的方法
除了上面这些方法,在Python 中借用 C/C++ 代码最原始有效的方法就是将代码编译成可执行程序,从 Python 里用 Popen 方法来调用获取输出。这种方法简单有效,缺点是不够灵活,有比较大的局限性,不过在很多情况下也已经足够了。

pipe = os.popen('./tool –a %s –b %s' % (“hello”, “world”))
re = pipe.read()
其他方法
以上这些方法基本上已经能满足Python 调用 C/C++ 的需求了,此外还有一些方法,例如使用 Boost.Python ,使用 Pyrex ,这些方法都能提供 Python 与 C/C++ 的交互。
总结
在Python 中引用 C/C++ 模块的方法较多,根据需要从中选择恰当的方法可以减少很多工作量。
在Python 中引用 C/C++ 模块弥补了 Python 脚本测试框架的很多不足,在提高代码复用率的同时,模块的性能也大大提高。

‘玖’ vcs是什么

病毒构造集
VCS(Virus Construction Set),病毒构造集,于1991年3月发布,这一工具出现在了公告版系统社区,它为有抱负的病毒编写者提供了一个简单的工具包,用于创建他们自己定制的恶意代码。编译型Verilog模拟器
VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言、PLI和SDF。VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模拟精度也完全满足深亚微米ASIC Sign-Off的要求。 VCS结合了节拍式算法和事件驱动算法,具有高性能、大规模和高精度的特点,适用于从行为级、RTL到Sign-Off等各个阶段。VCS已经将CoverMeter中所有的覆盖率测试功能集成,并提供VeraLite、CycleC等智能验证方法。VCS和Scirocco也支持混合语言仿真。VCS和Scirocco都集成了Virsim图形用户界面,它提供了对模拟结果的交互和后处理分析。 手机中设置的“待办事项”属于.vcs格式。 VCS:罪恶都市物语(17张) (Grand Theft Auto:Vice City Stories) 游戏名称 Grand Theft Auto : Vice City Stories(侠盗猎车手:罪恶都市物语) 游戏简称 GTA:VCS 制作厂商 Rockstar Leeds 代理发行 Rockstar Games 游戏人数 1人 游戏平台 Psp Ps2 发行日期 2006年11月03日 这次《侠盗猎车手:罪恶都市物语》虽然与 PS2 版的《侠盗猎车手:罪恶都市》(Grand Theft Auto: Vice City)几乎同名,但其实故事内容是全新制作,背景设定于 1984年的罪恶都市,在这个光鲜丽亮的大都会里,潜藏着许多不堪的犯罪事件,这个城市恍如罪恶之都,充斥着贩毒与暴力事件。 玩家将扮演主角 Vic Vance ,Vic 是名勇猛的斗士,为了家人、国家和他自己而战,在一个错误决定下,Vic 接下一项艰难的工作,而在这个充满着诱惑与贪婪的城市中,究竟 Vic 该如何自处?他该融入其中还是冒着横死街头的风险?玩家必须得做出自己的抉择。 《侠盗猎车手:罪恶都市物语》画面较之前作《侠盗猎车手:自由城故事》有了一定的提升,游戏的光影效果更加出色,人物更加真实,而且在同屏幕显示人物上也有了一定提升。游戏的祯数一直保持在40FPS左右,这点还是非常不错的,可见厂商的制作诚意。超过90首80年代的经典歌曲将会在游戏中以背景音乐的形式出现,超经典系统“黑人电台”也将收录本作,配合着那充满hip-hop风格音乐展现给大家的将会是一款全新的《侠盗猎车手:罪恶都市物语》。 PSP版《侠盗猎车手:罪恶都市》将会采用全新的故事主线,任务和游戏方式,并且保留很多系列的经典的设定,而非单纯的移植游戏,游戏中可以让玩家体验到前所未有的视觉享受,而且游戏中的主角将可以游泳。游戏里的场景比前作《侠盗猎车手:自由城故事》要足足大上两倍,超过100种的交通工具可供玩家选用,其中更包括直升飞机和摩托车。而且本作将会增加PS2版《侠盗猎车手:罪恶都市》所没有的新任务,任务,歌曲,交通工具等。游戏中的人物也将重新制作,就是算你玩过PS2版《侠盗猎车手:罪恶都市》也能在PSP版里找到全新的乐趣。 (可用PS2模拟器在PC上玩)

‘拾’ ARM7在UCOS下如何使用中断

这个有几个原因,请参考下面分析:
1,ucos
是多任务操作系统,当系统正常运行时,必须建立一个以上的任务,否则系统处于死机崩溃状态,程序运行出现异常。
2,你的系统时钟中断程序有问题,应该关中断,调用过系统时钟后再开中断,否则系统时钟异常导致程序运行异常,具体程序如下:
void
Tmr_TickISR_Handler
(void)
{
T0IR
=
0xFF;
//清零中断标志位
OSIntEnter(
);
//
关中断,必须有
OSTimeTick();
OSIntExit();
//临界代码完成,与关中断成对使用
}
3,看你上面的程序里面,你想使用定时器1中断来处理一些信息,而程序无法运行到其中,可能的原因有:1)你的定时器1初始化异常。2)你系统里面的中断使能关掉了。其实多任务的时候,你完全可以将它分配到一个任务里处理,这样既可以充分利用多任务,又不会因为中断没处理好而出现异常,如果你想要求实时性较高,那你可以将这个人物的优先级设为最高。
4,UCOS初始化异常,UCOS系统初始化有固定的顺序以及模式,颠倒了就会出现异常。
5,系统时钟tick一般建议为10hz-50hz,太高的话在你初始化的时候,还没创建任务的时候都已经进行任务切换了而导致ucos崩溃。

阅读全文

与vic怎么编译源文件相关的资料

热点内容
同花顺上传到服务器地址 浏览:927
电脑加密安卓版 浏览:824
手机程序加密有什么作用 浏览:178
求黑马程序员python教程 浏览:528
androidmvvm优缺点 浏览:894
unix下编译库文件 浏览:633
程序员的u盘 浏览:237
android根据经纬度获取城市 浏览:564
python使用解释器还是编译器 浏览:358
以下关于有加密算法及密钥描述 浏览:220
linuxgethostname 浏览:416
程序员多数有对象 浏览:131
单片机延时程序计算 浏览:444
编译原理语法翻译 浏览:504
pr编译出错渲染存在偏移 浏览:262
如何制作自家的app 浏览:199
推荐一个解压软件rar解压帮手 浏览:212
wd文档加密器 浏览:748
服务器上传压缩包一般是什么格式 浏览:333
发送加密文件密码几位数 浏览:160