Authorware UCD 开发大揭秘(二)

2008-04-09 04:21:46来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

入 门 篇

- Authorware插件的格式。

用过Authorware的朋友可能会注意到在Authorware系统目录下有十几个扩展名为.U32或.UCD的文件,没错,这就是Authorware的插件。其实这些文件的格式是非常标准的Window动态链接库文件,也就是*.DLL这样的文件。Authorware通过在动态链接库文件中访问指定的函数,如果该函数需要参数,则Authorware传递给该文件所访问的函数的所有参数,如果该函数有一个返回值,则Authorware得到该函数的返回值。但是,问题是:Authorware调用这些函数时并不知道该函数的参数或返回值,即便是在Viusal Basic中调用外部函数也需要事先声明函数的表达式,参数和返回值。下面大家就跟我一步一步揭开Authorware插件的奥秘。

二 字符串资源的奥秘。

我想我们最好通过一个实例来说明Authorware是怎样实现的。假设我们现在需要在Authorware中实现这样一个功能:我们用Authorware开发了一个多媒体课件或其他演示软件,不希望有他人偷偷运行这个程序,需要用一个口令输入框来限制一下,而Authorware没有提供相应的功能,现在我们就用Dephi来实现这个功能。现在我们需要创建一个函数来调用输入框,函数原型如下:

displayinputbox(caption,information,defaulttxt:Pchar):Pchar;

这里我们需要传递三个参数:caption:输入框标题

information:提示文字

defaulttxt:默认文字

返回值:用户最终输入的文字。

因为这里是编写DLL函数,所以字符串类型只能用Pchar,而不能用Dephi的string类型,因为同外部程序进行数据交换需用同C兼容的以零字符结尾的字符串。Authorware插件与普通Dll文件不同的是:它多了一个字符串资源,以上面这个函数为例,该字符串的格式如下:(括号内为注释文字,不加入)

1 DLL_HEADER LOADONCALL DISCARDABLE (函数原型声明)

BEGIN

"displayinputbox\0", ("\0"为供Authorware识别换行用,下同)

"\0"

END


displayinputbox DLL_HEADER LOADONCALL DISCARDABLE (函数参数和返回值说明)

BEGIN

"\0", (换行)

"S\0", (第一个为返回值说明,这里“S\0“表示返回值为字符串类型)

"SSS\0", (注意这里三个S表示参数为三个字符串类型);

"result=dispinputbox(caption,tiptxt,defaulttxt)\r\n" (函数调用说明,主要给用户介绍函数用法,它最终显示在Authorware调用函数说明框中)

"\r\n" (这里空一行)

"功能:显示输入框。作者:徐进 武汉市武珞路中学. \0" (加入版权信息,同上)

END

好了,现在明白了吧,Authorware识别函数格式的秘密全在这个字符串资源列表中。此外我要说明一下,如果参数或返回值为integer(整型变量)则表示为”I\0”,如果为long(长整型变量)则表示为”L\0”.下面我们要作的事就是赶紧用一个文本编辑器(记事本就行)将上述字符串资源输入,并 保存,我们起名为wresource.rc。找到Dephi系统下Bin目录,用Brcc32.exe文件将 该文件编译成资源文件Awresource.res。方法是在开始菜单中输入命令行”brcc32.exe Awresource.rc”。将生成的资源文件保存到我们马上要开工的Dephi工程文件目录下, 我们就可以开始使用Dephi编写Authorware插件了。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:用DELPHI开发AUTHORWARE的u32

下一篇:MSN / QQ 中的动画表情 在Delphi中RichEdit的实现。