📄 prime.cpp
字号:
// Prime.cpp : CPrime 的实现
#include "stdafx.h"
#include "Prime.h"
#include ".\prime.h"
// CPrime
STDMETHODIMP CPrime::GetNext(LONG* pVal)
{
while(1) // 计算 m_nNow 后的第一个素数
{
m_nNow ++;
for( long i = 2; i<m_nNow; i++ )
{
if( m_nNow % i == 0 ) break; //能够整除,则不是素数了
}
if( i == m_nNow ) break; // 找到了,停止计算
}
*pVal = m_nNow;
m_bDirty = true; // 内部持续性数据,已经改变了
return S_OK;
}
// IPersist
STDMETHODIMP CPrime::GetClassID(/*[out]*/CLSID * pClassID)
{
*pClassID = GetObjectCLSID();
return S_OK;
}
// IPersistStream
STDMETHODIMP CPrime::IsDirty(void)
{
if( m_bDirty ) return S_OK;
else return S_FALSE;
}
STDMETHODIMP CPrime::Load(/*[in]*/IStream *pStm)
{
return pStm->Read( &m_nNow, sizeof(long), NULL);
}
STDMETHODIMP CPrime::Save(/*[in]*/IStream *pStm,/*[in]*/BOOL fClearDirty)
{
if( fClearDirty ) m_bDirty = false;
return pStm->Write( &m_nNow, sizeof(long), NULL );
}
STDMETHODIMP CPrime::GetSizeMax(/*[out]*/ULARGE_INTEGER *pcbSize)
{
pcbSize->LowPart = sizeof(long);
pcbSize->HighPart = 0;
return S_OK;
}
// IPersistStreamInit
STDMETHODIMP CPrime::InitNew(void)
{
m_nNow = 0;
m_bDirty = true;
return S_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -