📄 student.cpp
字号:
// Student.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "Student.h"
#include "StudentDlg.h"
#include "CrackDlg.h"
#include "GuestSet.h"
#include "odbcinst.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CStudentApp
BEGIN_MESSAGE_MAP(CStudentApp, CWinApp)
//{{AFX_MSG_MAP(CStudentApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStudentApp construction
CStudentApp::CStudentApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CStudentApp object
CStudentApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CStudentApp initialization
BOOL CStudentApp::InitInstance()
{
AfxOleInit();
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Student.mdb","","",adModeUnknown);///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
AfxEnableControlContainer();
/**************the code below this is used to connect the acess database*****************/
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind('\\');
sPath=sPath.Left (nPos);
CString lpszFile = sPath + "\\Student.mdb";
char* szDesc;
int mlen;
szDesc=new char[256];
sprintf(szDesc,"DSN=%s? DESCRIPTION=TOC support source? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","Lulianghu_NUAA",lpszFile,sPath);
//PWD 是密码
mlen = strlen(szDesc);
for (int i=0; i<mlen; i++)
{
if (szDesc[i] == '?')
szDesc[i] = '\0';
}
SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc);
/**************the code before this is used to connect the acess database*****************/
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
//****************This below is used for check the use and password********************//
CCrackDlg m_dlg;
CString users;
CString password;
bool Flag=TRUE;
CGuestSet m_set;
m_set.Open();
while(Flag)
{
if(m_dlg.DoModal()==IDOK)
{
users=m_dlg.m_guest;
m_set.MoveFirst();
while(!m_set.IsEOF())
{
if(m_set.m_guest==users)
{
password=m_set.m_password;
break;
}
m_set.MoveNext();
}
if(password==m_dlg.m_password)
{
Flag=FALSE;
break;
}
else
{
AfxMessageBox("密码错误,请您重新输入!");
}
}
else // is used to exit the programm
return FALSE;
}
m_set.Close();
m_dlg.DestroyWindow();
//****************This before is used for check the use and password********************//
/*********************the code below is used for picture show*/
SetDialogBkColor(RGB(255,255,255),RGB(0,0,255));
CStudentDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
int CStudentApp::ExitInstance()
{
// TODO: Add your specialized code here and/or call the base class
if(m_pConnection->State)
m_pConnection->Close();
return CWinApp::ExitInstance();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -