📄 autonetfdl.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 + -