动态链接库是一个能够被应用程序和其它的DLL调用的过程和函数的集合体,它里面包含的是公共代码或资源。由于DLL代码使用了内存共享技术,在某些地方windows也给了DLL一些更高的权限,因而DLL中可以实现一些一般程序所不能实现的功能,如实现windows的HOOK、ISAPI等。
同时,DLL还为不同语言间代码共享提供了一条方便的途径。因而DLL在编程时应用较为广泛,本文将介绍如何在 Delphi 中建立和使用DLL。
从使用效果看,DLL和unit 很像,它们都可以被别的工程模块所调用,但二者在内部的实现机制上确存在着差别。如果一个程序模块中用uses语句引用了某个unit,编译程序在编译该模块时,便会连同unit一起编译,并把编译后的可执行代码链接到本程序模块中,这就是一个程序模块能够调用所引用unit中过程和函数的原因。
当同一个unit被多个工程所引用时,则每个工程中都含有该unit的可执行代码,当含有该unit的多个工程同时执行时,unit的可执行代码会随不同工程而多次被调入内存,造成内存资源的浪费。DLL则不同,它即使被某个工程调用,编译后仍是独立的。
也就是说编译后,一个DLL库形成一个单独的可执行文件,而不与任何其它的可执行文件连接在一起,因而DLL库并不从属于某个特定的工程,当多个工程调用同一个DLL库时只有第一个工程把DLL库调入内存,其余工程并不重复调入同一个DLL库到内存,而是到同一个共享内存区读取。并且,DLL的执行代码是在程序运行期间动态调入的,而不是如unit在程序运行时就与整个工程一起调入内存。这样便可消除unit带来的相同代码多处占用内存的弊病。Delphi中DLL库的建立
在Delphi环境中,编写一个DLL同编写一个一般的应用程序并没有太大的区别。事实上作为DLL主体的DLL函数的编写,除了在内存、资源的管理上有所不同外,并不需要其它特别的手段。
命令名称RunJS 在当前网页中执行一段JS脚本
命令功能
在当前网页中执行一段JS脚本,支持获取返回值
命令参数
参数1:整数型,执行类型;0表示执行js不带返回值,1表示执行js并返回返回值,需要js中有return语句
参数2:字符串型,js脚本语句
返 回 值
字符串型,返回特征字符串
脚本例子
按键精灵8及以上语法
复制代码
Call Plugin.Web.RunJS(0,"alert('hello!')")
title=Plugin.Web.RunJS(1,"var t=document.titlereturn t")
MessageBox title
Call Plugin.Web.RunJS(0,"alert('hello!')")
title=Plugin.Web.RunJS(1,"var t=document.titlereturn t")
MessageBox title
脚本例子
按键精灵7及以下语法
复制代码
Plugin Web.RunJS(0,"alert('hello!')")
Plugin title=Web.RunJS(1,"var t=document.titlereturn t")
MessageBox title
如图所示,完成一个下拉框
我们可以ng-model双向绑定一个变量,ng-init初始化一个0,下拉框初始化就默认是value为0的选项
这里有两种方式
1、ng-repeat
js中 $scope.fruitList 是请求服务器获取的数据
2、ng-option
关于ng-option更多参考
http://www.jb51.net/article/67909.htm
运行效果
http://sandbox.runjs.cn/show/nhi8ubrb