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

📄 autonetfdl.cpp

📁 AutoNetFidelio酒店管理系统增加智能门锁进行入住发卡及退房收卡。
💻 CPP
字号:
// AutoNetFdl.cpp : Defines the class behaviors for the application.

#include "stdafx.h"
#include "FrmMain.h"
#include "ClassXP.h"
#include "AutoNetFdl.h"
#include "AutoNetFdlDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

CString   g_DefaultLangDir;//默认语言目录
CString   g_SFont;         //字体类型
CFrmMain *g_pFrmMain;      //指向FrmMain窗口的指针
HINSTANCE hInstCard;       //动态装载MakeCard.dll的句柄
BOOL      g_IsFindLangDir; //判断是否找到语言相关的路径

BEGIN_MESSAGE_MAP(CAutoNetFdlApp, CWinApp)
//{{AFX_MSG_MAP(CAutoNetFdlApp)	
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

CAutoNetFdlApp::CAutoNetFdlApp()
{
	g_IsFindLangDir = FALSE;
	
	ClassXP(NULL,TRUE);
}

CAutoNetFdlApp::~CAutoNetFdlApp()
{
	ClassXP(NULL,FALSE);
}

CAutoNetFdlApp theApp;

BOOL CAutoNetFdlApp::InitInstance()
{	
	//初始化Windows Socket
	if (!AfxSocketInit())
	{
		AfxMessageBox("Windows sockets initialization failed!");
		return FALSE;
	}
	
	AfxEnableControlContainer();
	
#ifdef _AFXDLL
	Enable3dControls();			
#else
	Enable3dControlsStatic();
#endif
	
	CString szLanguagePath;
	//取得应用程序当前路径
	char  appPath[MAX_PATH];
	GetModuleFileName(NULL,appPath,MAX_PATH);
	szLanguagePath.Format("%s",appPath);
	int pos=szLanguagePath.ReverseFind('\\');
	szLanguagePath=szLanguagePath.Left(pos);
	
	szLanguagePath+="\\Language.DLL";

	char  LanguageID[8];
	char  LanguageSubDir[30];
	//取当前系统语言ID
	LCID  DefaultID=::GetSystemDefaultLangID();
	sprintf(LanguageID,"%04X",DefaultID);
	GetPrivateProfileString("Language",LanguageID, "en-us", LanguageSubDir, 30, szLanguagePath);
	
	CString SubDir;
	SubDir.Format("%s",LanguageSubDir);
//	if(SubDir!="en-us"&&SubDir!="zh-cn")
//		SubDir="en-us";
	
	CString szFilePath;
	szFilePath.Format("%s",appPath);
	pos=szFilePath.ReverseFind('\\');
	szFilePath=szFilePath.Left(pos);
	//获取存储字体信息
	char    language[30];
	szFilePath=szFilePath+"\\";
	//获取配置信息目录
	if (Search_Directory(SubDir))//找到对应的文件夹
	{
		g_DefaultLangDir = szFilePath+SubDir+"\\";
		g_IsFindLangDir  = TRUE;
	}
	else if(Search_Directory("en"))
	{
		g_DefaultLangDir = szFilePath+"en\\";
		g_IsFindLangDir  = TRUE;
	}
	else
	{
		g_DefaultLangDir = szFilePath+SubDir+"\\";
		g_IsFindLangDir  = FALSE;
	}
	
	//得到存储语言字体信息的文件路径
	szFilePath=szFilePath+SubDir+"\\AutoFdl.ini";
	m_InfoFilePath=szFilePath;
	//获取配置文件中的字体信息
	GetPrivateProfileString ("Par","SFont", "Times New Roman", language, 30, szFilePath);
	//设置对话框中所有控件的字体为g_SFont字体
	g_SFont.Format("%s",language);
	
	
	int IsInit;
	szFilePath.Format("%s",appPath);
    pos=szFilePath.ReverseFind('\\');
	szFilePath=szFilePath.Left(pos);
	szFilePath=szFilePath+"\\zhao.dll";
	//读取配置文件,确定是否显示配置窗口
	IsInit=GetPrivateProfileInt("IsIni","AutoFdl",false,szFilePath);
	
	//加载制卡动态库MakeCard.dll
	hInstCard=NULL;
	hInstCard=::LoadLibrary("MakeCard.dll");
	if (!hInstCard)
	{
		AfxMessageBox(Translate(m_InfoFilePath,"调用动态库失败,请重新启动!"));
		return FALSE;
	}
	
	int nResponse;
	if (!IsInit)
	{		
		//调用配置参数对话框
		CAutoNetFdlDlg  FrmLogin;
		m_pMainWnd  =   &FrmLogin;
		nResponse   =   FrmLogin.DoModal();
	}
	else
	{
		//加载只运行一个应用程序动态库
		HINSTANCE hInst=NULL;
		hInst=::LoadLibrary("GetM.dll");
		typedef void*  (__stdcall *pGetM)();
		pGetM pFunc= (pGetM)GetProcAddress (hInst,"FGetMem");
		if (!pFunc)
		{
			AfxMessageBox(Translate(m_InfoFilePath,"没有发现动态库,请与提供商联系!"));
			return TRUE;
		}
		void* pBuf;
        pBuf = pFunc();
        if (*((UINT *)pBuf)==0xAA)
		{    
			//系统已经运行
			AfxMessageBox(Translate(m_InfoFilePath,"系统已经运行!"));
			return	TRUE;  //表示系统已经运行
		}
		else
		{
			//加载应用程序主窗口
			*((UINT *)pBuf)=0xAA;
			CFrmMain  FrmMain;
			m_pMainWnd  =   &FrmMain;
			g_pFrmMain	 =  &FrmMain;
			nResponse   =   FrmMain.DoModal();
		}
		//释放动态库
		::FreeLibrary(hInst);
	}
	
	if (nResponse == IDOK)
	{
	}
	else if (nResponse == IDCANCEL)
	{
	}

	//释放动态库
	::FreeLibrary(hInstCard);
	
	return FALSE;
}

BOOL CAutoNetFdlApp::Search_Directory(CString strDirectory)
{
	CFileFind   l_filefind;
	CString     l_directory;
	BOOL        l_bDirectory = FALSE;
    
	
	//如果没有发现任何文件  
	if (!l_filefind.FindFile("*.*"))
		return FALSE;
	
	do{
		l_bDirectory = (l_filefind.FindNextFile()!=0);
		
		if (l_filefind.IsDirectory())
		{
			l_directory = l_filefind.GetFileName();  

			if (l_directory==strDirectory)//查找成功
			{
				l_filefind.Close();
				return  TRUE;
			}
		}
	}while(l_bDirectory);

	l_filefind.Close();
	
	return  FALSE;
}

extern CString  Translate(CString szPath,CString szInput)
{
	char     szCaption[200];
	CString  szTraResult;
	GetPrivateProfileString ("Info",szInput, NULL, szCaption, 200, szPath);	
	szTraResult.Format("%s",szCaption);
	
	if(!szTraResult.IsEmpty())
		return szTraResult;
	else
		return szInput;
}

⌨️ 快捷键说明

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