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提