制作文字修辑转换器插件说明: 插件文件格式:动态链接库文件格式,编译后的文件后缀名应为“.dll” 插件使用方法:将编译好的文件放置在本目录中,启动“文字修辑转换器”,然后在其菜单“插件”下,便可找到插件的项目。 清除插件方法:直接把有关文件删除或者移出本目录。 插件文件内容:需要包含三个可以提供远程调用的函数,具体说明如下: FuncName函数 带一个字符串(指针)参数,纯粹用于返回插件的名称,该名称将显示在“文字修辑转换器”的菜单“插件”下。 AnsiFunction函数 带一个普通文本的字符串(指针)参数,该函数用于处理主程序传输过来的文本内容,对其进行处理后,返送回主程序。该函数返回一个整数类型的结果,用于判断处理结果。 当结果为0,表示函数处理过程正常,要求主程序把参数返回的文本内容显示到主编辑框; 当结果为1,表示函数处理过程正常,但是不要求把参数返回的文本内容显示到主编辑框,而是显示到状态栏右下方的信息提示栏中,一般用于返回对文本的一些分析结果。 当结果为1以上的整数,表示函数的运行过程中出了错,主程序将不对返回的参数作任何处理,同时弹出警告对话框,提示函数运行出错及返回的出错号 ,以便于编写函数者分析出错原因。 UnicFunction函数 此函数的功能与AnsiFunction函数是一摸一样的,但是它的参数必须是一个UNICODE码的字符串(WideChar),由于文字修辑转换器支持ANSI和UNICODE两个编码的文本,而两种文本格式差别又比较大,因此制作插件时,需要分开两种编码情况分别编写处理函数。当主程序打开的是一个UNICODE码的文本(状态栏中显示为“当前:[unicode]”)时,主程序调用UnicFunction函数,其他情况则调用AnsiFunction函数。 插件的动态连接库文件中至少应包含以上三个主要函数,否则主程序在查找执行插件时可能会导致出错。插件理论上可以由多种程序语言编写,以下就是一个以DELPHI为语言编写插件例子,其功能很简单就是在文本的最后添加一个"a",有兴趣的用户不妨试试。以下程序的DELPHI7下已经编译通过。 //////////////////////////////////////////////////////////////// library plus1; uses SysUtils,Classes; {$R *.res} function FuncName(var Name:Pchar):integer;stdcall; begin Name:=Pchar('测试插件'); Result:=0; end; function AnsiFunction(var Src:Pchar):integer;stdcall; var s:string; begin Result:=2; // >1代表操作出错 s:=Src; if s='' then exit; Result:=1; // 1代表操作成功,返回反馈信息 if s='1' then begin Src:=Pchar('AnsiOK'); exit; end; s:=Src+'A'; Src:=Pchar(s); //返回操作结果 Result:=0; // 0代表操作成功,返回操作文本 end; function UnicFunction(var Src:PWideChar):integer;stdcall; var s:widestring; begin Result:=2; // >1代表操作出错 s:=Src; if length(Src)=0 then exit; Result:=1; // 1代表操作成功,返回反馈信息 if s='1' then begin s:='UnicOK'; Src:=PWidechar(s); exit; end; s:=s+'a'; Src:=PWideChar(s); //返回操作结果 Result:=0; // 0代表操作成功,返回操作文本 end; exports FuncName,AnsiFunction,UnicFunction;//必须为这三个名字 begin end. ////////////////////////////////////////////////////////////////