转载请标明是引用于 http://blog.csdn.net/chenyujing1234

参考文档:

http://bbs.code.ijinshan.com/viewthread.php?tid=1543

http://bbs.code.ijinshan.com/viewthread.php?tid=929&extra=&page=2

1、下载代码与lib

http://code.ijinshan.com/

得到 LIB4pcmanager.tbz    tip.tar.bz2

2、解压文件.得到oss 与 LIB4pcmanager

3、阅读\oss\Readme.txt

+-- pcmamager   110317 release:开源卫士整体 可编译学习版本!
110311 release:开源卫士整体
+-- kclear      110113 release:卫士垃圾清理
+-- ksm         101226 release:卫士主界面
+-- karpfw      101218 release:卫士ARP防火墙
+-- sysopt      101209  release:系统优化 之 开机加速器
+-- bksafevul   101201  release:漏洞扫描器
+-- ppro        101201  release:隐私保护器

阅读\oss\pcmanager\Readme.txt

外部库包:
http://code.ijinshan.com/download/LIB4pcmanager.tbz
下载后,将其中子目录覆盖 pcmanager 目录;
即:LIB4pcmanager
├── lib
└── src
将 lib 和 src 目录,覆盖 pcmanager 目录中的对应同名目录
编译
-------------------------------------------------------------------------------

按Readme.txt做吧,因为在打开\oss\pcmanager\sln\avcenter.sln后的工程avproductmgr,

从工程属性可以看到“附加库目录”为 ..\..\..\lib\win32d

4、
编译ksafe.sln解决方案.

对于beikesafe工程,把C++的包含文件的E:\winsdk\v6.0\Include 改为 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include

Lib的包含路径改为 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib

当然可以直接在工具->选项->VC++里去包含文件

编译后提示 "提示找不到BeikeUtils.lib"

这是因为还没编译commonlib.sln,找到后改include 与 lib包含路径,OK,编译通过了.

这里再编译beikesafe工程,报错:

1>正在链接...
1>scanlib.lib(klogic.obj) : 找到 MSIL .netmodule 或使用 /GL 编译的模块;正在使用 /LTCG 重新启动链接;将 /LTCG 添加到链接命令行以改进链接器性能
1>LINK : warning LNK4075: 忽略“/INCREMENTAL”(由于“/LTCG”规范)
1>atlsd.lib(atlfuncs.obj) : error LNK2005: "void __stdcall ATL::AtlWinModuleAddCreateWndData(struct ATL::_ATL_WIN_MODULE70 *,struct ATL::_AtlCreateWndData *,void *)" (?AtlWinModuleAddCreateWndData@ATL@@YGXPAU_ATL_WIN_MODULE70@1@PAU_AtlCreateWndData@1@PAX@Z) 已经在 kwslib.lib(setting_hlp.obj) 中定义
1>atlsd.lib(atlfuncs.obj) : error LNK2005: "void * __stdcall ATL::AtlWinModuleExtractCreateWndData(struct ATL::_ATL_WIN_MODULE70 *)" (?AtlWinModuleExtractCreateWndData@ATL@@YGPAXPAU_ATL_WIN_MODULE70@1@@Z) 已经在 kwslib.lib(setting_hlp.obj) 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: static class ATL::CTime __stdcall ATL::CTime::GetTickCount(void)" (?GetTickCount@CTime@ATL@@SG?AV12@XZ) 已经在 kwslib.lib(KwsSetting.obj) 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: __thiscall ATL::CTime::CTime(__int64)" (??0CTime@ATL@@QAE@_J@Z) 已经在 kwslib.lib(KwsSetting.obj) 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: __int64 __thiscall ATL::CTime::GetTime(void)const " (?GetTime@CTime@ATL@@QBE_JXZ) 已经在 kwslib.lib(KwsSetting.obj) 中定义
1>LINK : fatal error LNK1104: 无法打开文件“lib_jsonMT.lib”

-----

我们得把commonlib.sln编译成release的。我选择的是Release ModUrl

报错:

1>d:\自己的经验总结\自己的经验总结\金山开源\oss\pcmanager\src\publish\common/registrywow.h(18) : error C2146: 语法错误 : 缺少“;”(在标识符“OpenKeyEx”的前面)
1>d:\自己的经验总结\自己的经验总结\金山开源\oss\pcmanager\src\publish\common/registrywow.h(18) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\自己的经验总结\自己的经验总结\金山开源\oss\pcmanager\src\publish\common/registrywow.h(19) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\自己的经验总结\自己的经验总结\金山开源\oss\pcmanager\src\publish\common/registrywow.h(19) : warning C4183: “OpenKeyEx”: 缺少返回类型;假定为返回“int”的成员函数
1>d:\自己的经验总结\自己的经验总结\金山开源\oss\pcmanager\src\publish\common/registrywow.h(39) : error C2146: 语法错误 : 缺少“;”(在标识符“OpenKeyEx”的前面)
1>d:\自己的经验总结\自己的经验总结\金山开源\oss\pcmanager\src\publish\common/registrywow.h(39) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\自己的经验总结\自己的经验总结\金山开源\oss\pcmanager\src\publish\common/registrywow.h(40) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

找到出错的文件(双击就可以定位到这个文件了)
添加如下代码: 
// Support Windows SDK v5.0
#ifndef LSTATUS
typedef __success(return==ERROR_SUCCESS) LONG LSTATUS;
#endif

编译commonlib.sln 提示 Wow64FsEnableRedirection 好多 未知标识符?
找到出错的文件(双击就可以定位到这个文件了)和上一个的在同一个文件
添加如下代码:

WINBASEAPI
BOOLEAN
WINAPI
Wow64EnableWow64FsRedirection (
__in BOOLEAN Wow64FsEnableRedirection
);
WINBASEAPI
BOOL
WINAPI
Wow64DisableWow64FsRedirection (
__out PVOID *OldValue
);
WINBASEAPI
BOOL
WINAPI
Wow64RevertWow64FsRedirection (
__in PVOID OlValue
);

提示 SHCreateDirectory 不知道是啥?
在所提示的位置上 #include <shlobj.h>   把这个声明给他加进来就可以了。

5、编译主界面.

\oss\ksm\sln\KSafeMain.sln 没有出现错误.

==================================================================================================================

经过一天的测试,使用Visual C++ 2005 SP1 + ATL+WTL编译,测试结果为:
2012年3月27日发布的代码:sln目录下的19个sln(不含2个子目录下的),有11个可以正常编译、5个无效(项目已被删除)、4个编译有问题,

11个编译通过的为commonlib.sln 、avcenter.sln、bkver.sln、、kclear.sln、kmsspeed.sln、kprocesslib.lib、lang.sln、softmgr.sln、sysopt.sln,

netmon.sln,(其中FwProxy若是DEBUG的那么得把Relaese下的包含文件复制过来。netmon只能编译为release版本,DEBUG的会提示

1>atlsd.lib(atltime.obj) : error LNK2005: "public: static class ATL::CTime __stdcall ATL::CTime::GetTickCount(void)" (?GetTickCount@CTime@ATL@@SG?AV12@XZ) 已经在 kwslibmd.lib(KwsSettingOld.obj) 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: __thiscall ATL::CTime::CTime(__int64)" (??0CTime@ATL@@QAE@_J@Z) 已经在 kwslibmd.lib(KwsSettingOld.obj) 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: __int64 __thiscall ATL::CTime::GetTime(void)const " (?GetTime@CTime@ATL@@QBE_JXZ) 已经在 kwslibmd.lib(KwsSettingOld.obj) 中定义
1>LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

)

vulfix.sln(只能在Release版本下编译通过,在DEBGU版本下提示:

1>vulfixlib.lib(ImplVulfix.obj) : error LNK2019: 无法解析的外部符号 "unsigned short __cdecl GetLangID(void)" (?GetLangID@@YAGXZ),该符号在函数 "public: virtual long __thiscall CImplVulfix::Scan(unsigned long)" (?Scan@CImplVulfix@@UAEJK@Z) 中被引用
1>vulfixlib.lib(EnvUtils.obj) : error LNK2001: 无法解析的外部符号 "unsigned short __cdecl GetLangID(void)" (?GetLangID@@YAGXZ)
1>vulfixlib.lib(LeakDB.obj) : error LNK2001: 无法解析的外部符号 "unsigned short __cdecl GetLangID(void)" (?GetLangID@@YAGXZ)
1>vulfixlib.lib(ImplVulfix.obj) : error LNK2019: 无法解析的外部符号 "int __cdecl ParseDateString(wchar_t const *,int &,int &,int &)" (?ParseDateString@@YAHPB_WAAH11@Z),该符号在函数 "public: virtual int __thiscall CImplVulfix::ExpressScanSystem(void)" (?ExpressScanSystem@CImplVulfix@@UAEHXZ) 中被引用
1>vulfixlib.lib(LeakDB.obj) : error LNK2001: 无法解析的外部符号 "int __cdecl ParseDateString(wchar_t const *,int &,int &,int &)" (?ParseDateString@@YAHPB_WAAH11@Z)
1>vulfixlib.lib(ImplRepairVul.obj) : error LNK2019: 无法解析的外部符号 "public: __thiscall CLocalFileDownload::~CLocalFileDownload(void)" (??1CLocalFileDownload@@QAE@XZ),该符号在函数 __unwindfunclet$??0TDownloadAndInstallInfo@CImplRepairVul@@QAE@XZ$0 中被引用
1>vulfixlib.lib(ImplRepairVul.obj) : error LNK2019: 无法解析的外部符号 "public: __thiscall CLocalFileDownload::CLocalFileDownload(void)" (??0CLocalFileDownload@@QAE@XZ),该符号在函数 "public: __thiscall CImplRepairVul::TDownloadAndInstallInfo::TDownloadAndInstallInfo(void)" (??0TDownloadAndInstallInfo@CImplRepairVul@@QAE@XZ) 中被引用
1>vulfixlib.lib(ImplRepairVul.obj) : error LNK2019: 无法解析的外部符号 "int __cdecl CreateDirectoryNested(wchar_t const *)" (?CreateDirectoryNested@@YAHPB_W@Z),该符号在函数 "public: virtual long __thiscall CImplRepairVul::Repair(wchar_t const *,wchar_t const *,unsigned long)" (?Repair@CImplRepairVul@@UAEJPB_W0K@Z) 中被引用
1>vulfixlib.lib(LibPkgUpk.obj) : error LNK2001: 无法解析的外部符号 "int __cdecl CreateDirectoryNested(wchar_t const *)" 

5个无效的为ksafeinstaller.sln、onekeyinstall.sln、PluginEngine.sln、safemon.sln,KSafeMain.sln、

4个有问题的为

ksafe.sln  在DEBUG版本下正常,在Release 下出现下面错误.

提示下面的错误:

1>scanlib.lib(klogic.obj) : 找到 MSIL .netmodule 或使用 /GL 编译的模块;正在使用 /LTCG 重新启动链接;将 /LTCG 添加到链接命令行以改进链接器性能
1>LINK : warning LNK4075: 忽略“/INCREMENTAL”(由于“/LTCG”规范)
1>atlsd.lib(atltime.obj) : error LNK2005: "public: static class ATL::CTime __stdcall ATL::CTime::GetTickCount(void)" (?GetTickCount@CTime@ATL@@SG?AV12@XZ) 已经在 kwslib.lib(KwsSetting.obj) 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: __thiscall ATL::CTime::CTime(__int64)" (??0CTime@ATL@@QAE@_J@Z) 已经在 kwslib.lib(KwsSetting.obj) 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: __int64 __thiscall ATL::CTime::GetTime(void)const " (?GetTime@CTime@ATL@@QBE_JXZ) 已经在 kwslib.lib(KwsSetting.obj) 中定义
1>LINK : fatal error LNK1104: 无法打开文件“lib_jsonMT.lib”

KSafeMain.sln、

ksafeperfopt.sln   在DEBUG版本下正常,在Release 下出现下面错误.

提示

error MIDL2025 : syntax error : expecting ] or , near
"annotation"
Include\unknwn.idl(108) : error MIDL2026 : cannot recover from earlier syntax errors;

参考: http://blog.csdn.net/immcss/article/details/2581604

在工具->选项->VC++目录中执行文件添加

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin解决,

但又提示下面错误

1>LINK : fatal error LNK1104: 无法打开文件“lib_jsonMT.lib”

ksafesvc.sln  在DEBUG版本下正常,在Release 下出现下面错误.

1>LINK : fatal error LNK1104: 无法打开文件“lib_jsonMT.lib”

=========================================================================================================================

总的来说对金山是失望的,打着开源的旗号,可是开源关没有完全,且编译都会出现问题。

与外国的开源软件相比,确实还有差距,希望改进.

不管了,虽然不能运行,但有些东西还是有帮助的.这里还是要感谢金山公司.

金山卫士开源软件之旅(一) VS 2005环境下编译相关推荐

  1. 金山卫士开源软件之旅(十) KSafeMainproject的分析 1

    上一次看金山开源到如今已有一两个月了.期间看到QQ群里大家对它非常是热情. 近期有时间想看看金山的主界面projectKSafeMain,自己水平有限,总结的东西浅显.但还是愿意拿来与大家分享.希望对 ...

  2. 金山卫士开源软件之旅(十) KSafeMain工程的分析 1

    上一次看金山开源到现在已有一两个月了.期间看到QQ群里大家对它很是热情. 最近有时间想看看金山的主界面工程KSafeMain,自己水平有限,总结的东西浅显.但还是愿意拿来与大家分享.希望对大家有帮助. ...

  3. 金山卫士开源软件之旅(二) 简单教程:如何创建一个基于金山卫士界面库的工程

    完整解决方案代码压缩包: test_full.zip (267.59 KB) 参考: http://bbs.code.ijinshan.com/thread-1391-1-1.html 为了让更多的朋 ...

  4. 《在路上 …》 金山卫士开源 , 人生很多感慨

    最近写日记少了很多, 主要是很多情绪化的东西, 都汇入了某条有去无回的地下河. 好吧, 不说这些, 来说说金山卫士开源. 相比360安全卫士那种作秀式的开源 (代码只对极少极少的人开放, 隐隐藏藏), ...

  5. 《金山卫士开源--让互联网拥抱安全》语音互动实录

    12月22日,金山网络安全技术研发中心过程改进经理,参与了主题<金山卫士开源--让互联网拥抱安全>的公开YY语音,与网友们进行了深度的互动,为广大网友答疑解惑有关金山卫士的详情. 嘉宾简介 ...

  6. 金山卫士开源代码----消息机制浅析 (上

    博客已迁移至:http://kulv.sinaapp.com/,这里不再使用 金山卫士开源代码----消息机制浅析 (上) 代码地址:http://download.csdn.net/source/3 ...

  7. 金山卫士开源系列讲座之一:揭秘卫士如何优化系统

    你的电脑开机速度快不快?你的系统运行速度为何变慢?虽然我们整天用电脑,但很多人对此不明所以,或者知其然而不知其所以然. 作为国内专业的主流安全管理软件,金山卫士拥有简便强劲的系统优化功能,包括开机加速 ...

  8. 金山卫士开源---kclear 卫士垃圾清理

    金山卫士的开源已经进行了好长时间了,现在已经开放第六批源码"kclear 卫士垃圾清理". 下载源码,使用VS2010打开,自动转换解决方法之最新. 首先,源代码是需要atl支持的 ...

  9. 在金山卫士开源中如何开源自己的项目

    转自: http://code.ijinshan.com/trac/wiki/HowToCreatMyProject 如何开源自己的项目¶ 文档属主: ZoomQuiet 目标读者: 所有社区成员和关 ...

最新文章

  1. mysql图形化及命令行操作用户权限
  2. 华为视觉研究路线图:三大挑战,六项计划
  3. SU Demos-02Filtering-05Suk1k2filter
  4. 安卓初学者必看实例,(手机GPS简单编程访问)
  5. bzoj 2843: 极地旅行社
  6. 计算机是如何启动的?(转载)
  7. 数据结构学习(2):汉诺塔问题
  8. 在窗体创建时显示窗体
  9. 基于VUE,VUX组件开发的网易新闻页面搭建过程
  10. Winscp指向putty.exe,文件用notepad++打开
  11. 输入九九乘法表c语言,九九乘法表的输入(c语言)
  12. 个人博客网站的设计与实现
  13. 河北计算机四六级报名入口,英语四六级考试报名入口
  14. web文件上传思路(一句话muma)
  15. 大数据如何赋能产品—用户特征分析
  16. 2019年春晚表情包
  17. Windows7 UAC 实验
  18. 池化层(汇聚层)的通道变化
  19. 如何在服务器搭建oa系统,如何在云主机搭建oa服务器
  20. kestrel java_Kestrel Web 服务器学习笔记

热门文章

  1. 重逢1小时!为与逝去女友幽灵一起开车,痴情男子玩到赛车游戏崩溃
  2. Apache Knox官方文档中文版(1.1.0)--简介
  3. CCF认证2014032-窗口
  4. JS逆向之某头条jsvmp逻辑层算法分析
  5. js用户名正则表达式
  6. 网管平常做什么?网管日常工作的基本内容
  7. mel编程相较于c语言怎么样,关于mel脚本语言的编写与使用?
  8. LibQQt系列之九《QQt跨平台头文件及其不同以及原因》
  9. confluence忘记admin密码
  10. 用limma包进行多组差异表达分析