争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

用DELPHI开发AUTHORWARE的u32

时间:2024/6/22作者:未知来源:争怎路由网人气:

用DELPHI开发AUTHORWARE的u32
  函数功能是AUTHORWARE最突出的特征,利用AUTHORWARE提供的系统函数能够完成一些复杂的控制任务。对于一些特殊的任务,AUTHORWARE允许用户自己定义函数,使得程序设计具有更大的灵活性。对于windows系统来说,自定义函数是以动态链接库(DLL)文件存储的,因此存储自定义函数的文件与当前交互式应用程序文件是分立。本文介绍一下如何用DELPHI开发AUTHORWARE的自定义函数—32 bit U32,本文以DELPHI开发可在AUTHORWARE中调用显示message box的U32为例子。虽然AUTHORWARE ATTAIN 5.0已提供了使用knowledge objects 显示message box的功能,但在4.0以前的版本无此功能,这就可用其它语言开发自己的U32,在AUTHORWARE中调用。 
  开发U32可分为五个步骤: 

创建工程文件

创建函数

创建资源文件

编译资源文件

创建u32 
  1.创建工程文件 
  在file/new选择dll生成一个dll文件,在file/add to project….加入一个包含U32函数代码的单元myunit.pas(此单元在第二步创建函数中详细说明)在uses后必须声明所有可在authorware中调用的函数。例如: 

exports MsgBox;
最终的代码如下所似:
library authorware;
uses
  SysUtils,Classes,
  myunit in 'myunit.pas';
exports MsgBox;
begin
end.
  2.创建函数 
  当你创建一个函数可用在authorware中,必须声明为exported 函数在关键字interface 后面加入代码如下: 

 interface
   uses ,Dialogs,SysUtils,windows;          
function MsgBox(msg:string;mbType:
Word;title:string):WORD;export;
Delphi32 需要添加{$ifdef WIN32} stdcall ;
 ($endif} 在函数声明后面如:
function MsgBox(msg:string;mbType:
Word;title:string):WORD;export;
{$ifdef WIN32} stdcall ; {$endif}
现在我们为函数加入代码在implementation后面:
     const
    OKOnly=0;
    OKCancel=1;
    AbortRetryIgnore=2;
    YesNoCancel=3;
    YesNo=4;
    RetryCancel=5;
    Critical=16;
    Question=32;
    Excalamation=48;
    Information=64;
    DefaultButton1=0;
    DefaultButton2=256;
    DefaultButton3=512;
    ApplicationModal=0;
    SystemModal=4096;
function StrToPch(Str:string):PChar;
    var a:PChar;
    begin
      a:=StrAlloc(Length(Str)+1);
      StrPCopy(a,Str);
      StrToPch:=a;
    end;
function MsgBox(msg:string;mbType:
Word;title:string):WORD;
 VAR
  LpText,lpCaption:Pchar;
  h:HWND;
  begin
  lpText:=StrToPch(title);
   lpCaption:=StrToPch(msg);
    h:=GetActiveWindow();
    MsgBox:=MessageBox(h,lpText,lpCaption,mbType);
  end;
  3.创建资源文件 

  最后我们要做的事情是创建资源文件,这样authorware才能直接调用函数。必须先创建.rc文件然后编译成.res文件。使用记事本创建.rc的资源文件。加入如下定义:我将在后面解释这些定义: 

1 DLL_HEADER PRELOAD DISCARDABLE 
BEGIN 
     "MsgBox\0", 
     "\0" 
END 
msgbox DLL_HEADER PRELOAD DISCARDABLE 
BEGIN 
     "\0", 
     "W\0", 
     "SWS\0", 
     "Result := MsgBox(msg,mbType,title)\r\n", 
     "\r\n", 
     "show messagebox\0", 
END
  如果一个 dll文件是按authorware调用转换格式编写,则存储于其中的所有自定义函数的目录也包含在该文件中,并且authorware在调用这些函数时所需的信息也包含在内,其目录称为目录源,而且目录源中的每一个函数有相应的定义,这些定义称为定义源。具体格式如下: 

  1. 目录源 

   目录源的格式如下所示:
   

关键词:用DELPHI开发AUTHORWARE的u32




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版