编译 JWSCL(JEDI Windows Security Code Lib) 的方法(rev316)

it2022-05-05  130

JWSCL(JEDI Windows Security Code Lib)是JEDI的安全开发库,包括很多系统安全相关的库和例子。目前JWSCL还没有像JEDI Code Library那么成熟,其中Bug较多,且安装不便。这里记录一下JWSCL的编译设置过程,避免以后走弯路。 作者的Blog: http://blog.delphi-jedi.net/2008/03/03/jwscl-release-revision-316/ 作者关于JWSCL的配置文档: http://blog.delphi-jedi.net/2008/03/03/2008/03/03/how-to-setup-jwscl/ 这里使用的JWSCL是 JEDI Windows Security Code Lib - Revision 316 可以到 http://sourceforge.net/projects/jedi-apilib/files/ 下载,或者直接点击下面zip文件链接:jedi_api_wscl_rev316.zip        8.1 MiB
下面是配置过程: 解压缩 jedi_api_wscl_rev316.zip,使用 Delphi 2007 打开 jedi-api-lib\jwapi\trunk\Workspace\DJediApilib.dpk (注意:D2009无法编译通过,JWSCL的Unicode支持不好) 工程文件中加入  Search Path:  "..\Common" -> Build 出现错误1:[Pascal Fatal Error] JwaRpcDce.pas(73): F1026 File not found: 'JwaRpc.dcu'忘了加 "..\Win32API"加入 Search Path: "..\Common;..\Win32API" -> Build 错误2:[Pascal Error] JwaQosSp.pas(146): E2003 Undeclared identifier: 'USHORT'类型不对,强制使用JwaWinType。文件头部interfaceuses   {$IFDEF USE_DELPHI_TYPES}    Windows,    {$ELSE}   JwaWinType,   {$ENDIF USE_DELPHI_TYPES} 改   //{$IFDEF USE_DELPHI_TYPES}    //Windows,    //{$ELSE}   JwaWinType,   //{$ENDIF USE_DELPHI_TYPES} 确定 ..\Win32API 目录下生成了 JwaWindows.dcu 文件(rev316的约4.22 MB)将生成的所有DCU复制到 jedi-api-lib\jwscl\trunk\JwaDCU 目录(自己建个文件夹JwaDCU),避免重复编译。 【下面可以开始编译例程了】 例如最简单的 jedi-api-lib\jwscl\trunk\examples\Hash,打开dpr设置 Search Path: "..\..\source;..\..\JwaDCU"提示错误3:[Pascal Fatal Error] JwsclTypes.pas(45): F1026 File not found: 'JwaVista.dcu'看来还有东西没编译,继续回到 DJediApilib.dpk,添加 JwaVista.pas (其他dcu没找到也可以同样处理)Build OK!SimpleMD5的两个错误:[Pascal Error] SimpleMD5.dpr(29): E2010 Incompatible types: 'Pointer' and 'Char'[Pascal Error] SimpleMD5.dpr(33): E2250 There is no overloaded version of 'RetrieveHash' that can be called with these arguments去掉^,传入参数1是指针。这个例子可能是之前的版本:29:  Hash.HashData(PChar(Data), Length(Data));33:    Hash.RetrieveHash(HashVal, Size); SimpleMD5的运行截图: WinStation ACL例程: 另外, 不要让编译器去查找jwapi的源文件,要引用dcu文件才行 ,不然 JwaWindows.pas 肯定编译不通过。 如果编译时出现 JwaWindows.pas 里的错误(最常见的是找不到jediapilib.inc),请关掉Delphi检查下环境变量里有没有被加入 Win32API。 最简单的办法是用JCL的Install.bat编译JediInstaller.exe,然后点Uninstall卸载JEDI,这样可以根除jwapi源文件的引用。

转载于:https://www.cnblogs.com/bits/archive/2009/08/25/JEDI-JWSCL_Setup_Tips.html

相关资源:jedi支持库的问题Life提

最新回复(0)