Authorware UCD 开发大揭秘(二)

类别:Delphi 点击:0 评论:0 推荐:
入   门   篇

- 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插件了。

本文地址:http://com.8s8s.com/it/it4330.htm