| p; APlugin.Caption:= FieldByName(''''modName'''').Value; APlugin.DllFileName := FieldByName(''''modFile'''').Value; APlugin.WndClass := FieldByName(''''modWndClass'''').Value ; result:=True; end; Close; end; //end of with...do... end; //end of try except on E:Exception do begin Result:=False; myDA.Free ; Exit; end; //end of exception end; //end of try...except myDA.Free ; end; //----------------------------------------- //Name: LoadShowPluginForm //Func: 载入DLL插件并显示窗口 //Para: APlugin-TMyPlugins //Rtrn: true-创建成功 //Auth: CST //Date: 2005-6-2 //----------------------------------------- function TFormHall.LoadShowPluginForm (const APlugin:TMyPlugins):boolean; var ShowDLLForm: TShowDLLForm; //DLL接口函数实例 FreeDLLForm: TFreeDLLForm; sPath:string; //DLL文件的完整路径 begin try begin sPath:=ExtractFilepath(Application.ExeName)+ ''''plugins\'''' + APlugin.DllFileName ; APlugin.ProcAddr := LoadLibrary(PChar(sPath)); APlugin.FuncFreeAddr := GetProcAddress(APlugin.ProcAddr,''''FreeDLLForm''''); APlugin.FuncAddr := GetProcAddress(APlugin.ProcAddr ,''''ShowDLLForm''''); @ShowDLLForm:=APlugin.FuncAddr ; @FreeDLLForm:=APlugin.FuncFreeAddr; if ShowDllForm(Self.Handle, APlugin.Caption , APlugin.UserID) then Result:=True else Result:=False; end; except on E:Exception do begin Result:=False; ShowMessage(''''载入插件模块错误,请检查PLUGINS目录里的文件是否完整。''''); end; end; end; …… 上一页 [1] [2] [3] [4] [5] [6] [7] 下一页 |