b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

金山卫士开源_安全软件开源_金山卫士手机版(3)

电脑杂谈  发布时间:2017-03-28 22:01:30  来源:网络整理

它主要完成 :

初始化扫描引擎;

加载ksafevul.dll中的API函数, 创建CVulEngine中的IVulEnvironment 接口;

解发开始扫描的消息。

void CBeikeVulfixHandler::InitEnv()
{
	if(!theEngine)
	{
		// 初始化扫描引擎
		theEngine = new CVulEngine;	
		// 加载ksafevul.dll中的API函数, 创建CVulEngine中的IVulEnvironment 接口
		theEngine->_InitFunctions();

		m_WinInfo.Init();
		//m_WinInfo64 = IsWin64();
	}
	// 解发开始扫描的消息
	PostMessage( WMH_SCAN_START, 0, 0);
}

大家可以用VS2005打开 beikesafevul.sln

(2、2、1、1)首先编译BeikeUtils工程。

会出现以下报错:

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

解决方法请参考我的另一篇文章:(里面有同样的出错的处理)

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

(2、2、1、2) 其它的工程都顺利编译通过,只有两个工程ksafevul、VulfixLib出现报错:

envutils.h(428) : error C3861: “IsWin64”: 找不到标识符

它是用来判断系统是不是64位用的。

既然源码没有提供此函数,那么我们自己来实现吧:

考虑到调用到此函数的cpp文件都包含了BeikeUtils.h文件,我决定在BeikeUtils 中添加此函数体

BeikeUtils.h中添加

// 判断是不是64位的系统
// 返回值: TRUE 是64位系统;FALSE 不是64位系统
BOOL IsWin64();

BeikeUtils.cpp里添加

BOOL IsWin64()
{
	#define IS_64BIT_OS (sizeof(void *) == 8)
	return IS_64BIT_OS;
}

ksafevul工程编译通过后就生成了ksafevul.dll.这样大家就可以调试扫描漏洞与修复漏洞的过程了。

void CBeikeVulfixHandler::OnBkBtnScan()
{
	if(m_firstInited)
	{
		// Clean downloaded files 
		BOOL bSave = BKSafeConfig::Get_Vulfix_SaveDownFile();
		if( !bSave )
			theEngine->m_fixLog.CleanFiles(FALSE, NULL);
		m_firstInited = FALSE;
		SetItemVisible(1015, !theEngine->IsSystemSupported());
	}
	// 把扫描结果列表清空
	ResetListCtrl(m_wndListCtrlVul);
	// 调用引擎起一线程开始扫描
	if( theEngine->ScanVul( m_RefWin.m_hWnd ) )
	{
		// 界面处理
		m_dwScanBeginTime = GetTickCount();
		m_bScanStarted = FALSE;

		m_nScanState = 0;
		m_nTotalItem = 0;
		m_nCurrentItem = 0;
		_SetDisplayState(SCANSTATE_SCANNING);
		_SetScanProgress( 0 );
		m_RefWin.SetTimer(0, 200, NULL);
		m_wndListCtrlVul.SetEmptyString(BkString::Get(IDS_VULFIX_5027));
		m_RefWin.StartIconAnimate( IDC_IMG_VULFIX_SCAN_ANIMATION, IDC_PROGRESS_VULFIX_SCANNING, 300);
		SetItemDWordAttribute(IDC_PROGRESS_VULFIX_SCANNING, "showpercent", 0);
	}
}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-38143-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...