⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crytestdlg.cpp

📁 EJB,business logic 处理程序。 主要想找一点关于加密方面的程序。
💻 CPP
字号:
// CrytestDlg.cpp : 幚憰僼傽僀儖
//

#include "stdafx.h"
#include "Crytest.h"
#include "CrytestDlg.h"
#include ".\crytestdlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CCrytestDlg 僟僀傾儘僌

CCrytestDlg::CCrytestDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCrytestDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CCrytestDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_PROGRESS1, m_cPlog);
}

BEGIN_MESSAGE_MAP(CCrytestDlg, CDialog)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
	ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedButton3)
END_MESSAGE_MAP()


// CCrytestDlg 儊僢僙乕僕 僴儞僪儔

BOOL CCrytestDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// 偙偺僟僀傾儘僌偺傾僀僐儞傪愝掕偟傑偡丅傾僾儕働乕僔儑儞偺儊僀儞 僂傿儞僪僂偑僟僀傾儘僌偱側偄応崌丄
	//  Framework 偼丄偙偺愝掕傪帺摦揑偵峴偄傑偡丅
	SetIcon(m_hIcon, TRUE);			// 戝偒偄傾僀僐儞偺愝掕
	SetIcon(m_hIcon, FALSE);		// 彫偝偄傾僀僐儞偺愝掕

	m_bAbort = FALSE;

	m_cPlog.SetRange(0, 100);
	m_cPlog.SetPos(0);

	::GetCurrentDirectory(MAX_PATH, m_strDir.GetBuffer(MAX_PATH));

	m_strInput1 = m_strDir + "Test1.jpg";
	m_strOutput1 = m_strDir + "Test1.jpg.enc";

	m_strInput2 = m_strDir + "Test1.jpg.enc";
	m_strOutput2 = m_strDir + "Test2.jpg";

	GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
	
	return TRUE;  // 僼僅乕僇僗傪僐儞僩儘乕儖偵愝掕偟偨応崌傪彍偒丄TRUE 傪曉偟傑偡丅
}

// 僟僀傾儘僌偵嵟彫壔儃僞儞傪捛壛偡傞応崌丄傾僀僐儞傪昤夋偡傞偨傔偺
//  壓偺僐乕僪偑昁梫偱偡丅僪僉儏儊儞僩/價儏乕 儌僨儖傪巊偆 MFC 傾僾儕働乕僔儑儞偺応崌丄
//  偙傟偼丄Framework 偵傛偭偰帺摦揑偵愝掕偝傟傑偡丅

void CCrytestDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 昤夋偺僨僶僀僗 僐儞僥僉僗僩

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 僋儔僀傾儞僩偺巐妏宍椞堟撪偺拞墰
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// 傾僀僐儞偺昤夋
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

//儐乕僓乕偑嵟彫壔偟偨僂傿儞僪僂傪僪儔僢僌偟偰偄傞偲偒偵昞帵偡傞僇乕僜儖傪庢摼偡傞偨傔偵丄
//  僔僗僥儉偑偙偺娭悢傪屇傃弌偟傑偡丅
HCURSOR CCrytestDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

void CCrytestDlg::OnBnClickedButton1()
{
	int lngret;
	m_bAbort = FALSE;

	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);

	//DLL偺僴儞僪儖傪庢摼偡傞丅
	HMODULE HDll = LoadLibrary("Crypack.dll"); 

	if(HDll)
	{
		//娭悢偺億僀儞僞傪愰尵偟傑偡丅
		int (*Encrypt)(char*, char*, char*, bool CALLBACK(int, LPARAM), LPARAM);

		//娭悢偺億僀儞僞偵MakePublicKeyC娭悢偺億僀儞僞傪戙擖偟傑偡丅
		Encrypt = (int (*)(char*, char*, char*, bool CALLBACK(int, LPARAM), LPARAM))
			GetProcAddress(HDll, "FileEncrypt");

		//幚嵺偵娭悢偺億僀儞僞偐傜娭悢傪棙梡偟傑偡丅
		lngret = (*Encrypt)(m_strInput1.GetBuffer(MAX_PATH), m_strOutput1.GetBuffer(MAX_PATH), "sanrai", MyCallback, LPARAM(this));

		//夝曻
		(void)FreeLibrary(HDll);
	}

	GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
}

void CCrytestDlg::OnBnClickedButton2()
{
	int lngret;
	m_bAbort = FALSE;

	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);

	//DLL偺僴儞僪儖傪庢摼偡傞丅
	HMODULE HDll = LoadLibrary("Crypack.dll"); 

	if(HDll)
	{
		//娭悢偺億僀儞僞傪愰尵偟傑偡丅
		int (*Decrypt)(char*, char*, char*, bool CALLBACK(int, LPARAM), LPARAM);

		//娭悢偺億僀儞僞偵MakePublicKeyC娭悢偺億僀儞僞傪戙擖偟傑偡丅
		Decrypt = (int (*)(char*, char*, char*, bool CALLBACK(int, LPARAM), LPARAM))
			GetProcAddress(HDll, "FileDecrypt");

		//幚嵺偵娭悢偺億僀儞僞偐傜娭悢傪棙梡偟傑偡丅
		lngret = (*Decrypt)(m_strInput2.GetBuffer(MAX_PATH), m_strOutput2.GetBuffer(MAX_PATH), "sanrai", MyCallback, LPARAM(this));

		//夝曻
		(void)FreeLibrary(HDll);
	}

	GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
}

bool CALLBACK MyCallback(int percent, LPARAM userdata)
{
	CCrytestDlg* pDlg = (CCrytestDlg*)userdata;

	pDlg->m_cPlog.SetRange(0, 100);
	pDlg->m_cPlog.SetPos(percent);

	if(pDlg->m_bAbort == FALSE)
	{
		return true;
	}
	else
	{
		return false;
	}
}

void CCrytestDlg::OnBnClickedButton3()
{
	m_bAbort = TRUE;
	GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -