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

📄 avhall_config.cpp

📁 通过vc++语言编写的一个界面程序,主要完成IP地址的链接和网页的打开
💻 CPP
字号:
// AVHall_Config.cpp: implementation of the AVHall_Config class.
//
//////////////////////////////////////////////////////////////////////

#include "../stdafx.h"
#include "../AV_Hall.h"
#include "AVHall_Config.h"

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



#define CONFIG_FILE				"client_cfg.DLL"
#define CONFIG_SECTION			"config"
#define SHARE_KEY_WEB_HALL		"webhall"
#define SHARE_KEY_WEB_HOMEPAGE	"webhomepage"
#define SHARE_KEY_WEB_LIVING	"webliving"
#define SHARE_KEY_WEB_CHAT		"webchat"
#define SHARE_KEY_WEB_MARRIAGE	"webmarriage"
#define SHARE_KEY_WEB_EDUCATION	"webeducation"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CAVHall_Config * CAVHall_Config::m_pConfig = NULL;
CAVHall_Config::CAVHall_Config()
{
	m_pConfig = NULL;
	m_strEducation = "about:blank";
	m_strMarriage = "about:blank";
	m_strChat = "about:blank";
	m_strLiving = "about:blank";
	m_strHomePage = "about:blank";
	m_strHall = "about:blank";	
}

CAVHall_Config::~CAVHall_Config()
{

}

CAVHall_Config* CAVHall_Config::GetIns()
{
	if (NULL == m_pConfig)
	{
		m_pConfig = new CAVHall_Config;
	}
	return m_pConfig;
}

void CAVHall_Config::FreeIns()
{
	if (NULL != m_pConfig)
	{
		delete m_pConfig;
		m_pConfig = NULL;
	}
}

void CAVHall_Config::SaveConfig()
{
	CString strFile=GetCurPath()+CONFIG_FILE;
	WritePrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_HALL,m_strHall,strFile);
	WritePrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_HOMEPAGE,m_strHomePage,strFile);
	WritePrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_LIVING,m_strLiving,strFile);
	WritePrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_CHAT,m_strChat,strFile);
	WritePrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_MARRIAGE,m_strMarriage,strFile);
	WritePrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_EDUCATION,m_strEducation,strFile);
/*
WritePrivateProfileString(LPCSTR lpAppName,LPCSTR lpKeyName,
                                           LPCSTR lpString,LPCSTR lpFileName)
功能:该函数将拷贝一个字符串到指定文件的指定区域中
参数:
  参数1:区域名称;参数2:关键字的指针;参数3:要追加的字符串的指针;参数4:文件名

  
*/
}

void CAVHall_Config::LoadConfig()
{
	#define MAX_BUF (200)
	char szBuf[MAX_BUF];
	CString strFile=GetCurPath()+CONFIG_FILE;
	DWORD   dwRet=0;
	dwRet=GetPrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_HALL,"",szBuf,MAX_BUF,strFile);
	if (dwRet>0) m_strHall=szBuf;
	dwRet=GetPrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_HOMEPAGE,"",szBuf,MAX_BUF,strFile);
	if (dwRet>0) m_strHomePage=szBuf;
	dwRet=GetPrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_LIVING,"",szBuf,MAX_BUF,strFile);
	if (dwRet>0) m_strLiving=szBuf;
	dwRet=GetPrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_CHAT,"",szBuf,MAX_BUF,strFile);
	if (dwRet>0) m_strChat=szBuf;
	dwRet=GetPrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_MARRIAGE,"",szBuf,MAX_BUF,strFile);
	if (dwRet>0) m_strMarriage=szBuf;
	dwRet=GetPrivateProfileString(CONFIG_SECTION,SHARE_KEY_WEB_EDUCATION,"",szBuf,MAX_BUF,strFile);
	if (dwRet>0) m_strEducation=szBuf;
    /*
	DWORD GetPrivateProfileString(LPSTR lpAppName,LPCSTR lpKeyName,LPCSTR lpDefault
	                       ,LPTSTR lpReturnedSTring,DWORD nSize,LPCSTR lpFileName);
	功能:该函数从一个初始化文件的指定区域检索一个字符串.
	参数:
	   参数1,区域名称;若该参数取值NULL,则该函数将指定文件中的所有区域名称拷贝到
	         提供的缓冲区中.
	   参数2,关键字的名称;若该参数取值NULL,则由参数1所指定的所有区域中所有关键名称
	        都会拷贝到由lpReturnedSTring所提供的缓冲区中.
	   参数3,预设字符串的句柄.若由lpKeyName所提供的关键字名称不能打开,则该函数拷贝该
	        预设的字符串到由lpReturnedString所提供的buffer.这个参数不能设为NULL.
	   参数4,用于接收检索到的字符串的缓冲区的句柄
	   参数5,指出由参数4所提供的缓冲区最多可以存放多少个字符.
	   参数6,文件名.若在指定路径中找不到该文件,则系统会在Windows directory中查找到该文件.
    */
   
}

CString CAVHall_Config::GetCurPath()
{
	CString	strCurPath = "";
	char	szPath[MAX_PATH];
	szPath[0]	= '\0';
	//<out>获得当前进程的路径
	//<out>主要是为了应用程序和控件都可以使用
	/*
	DWORD GetModuleFileName(HMODULE hModule,LPTSTR lpFilename,DWORD nSize);
	功能:
	返回值:若函数执行成功,由返回实际拷贝的字符数,否则返回0值,此时可以调用GetLastError返回最近错误的类型
	参数1,待查可执行文件的句柄,若该参数取值为NULL,则该函数返回用于创建调用进程的文件的
	     路径
    参数2,用于存放指定模块的路径和文件名的缓冲区
	参数3,指定缓冲区最多可以存放的字符数,若文件名和路径的长度超过限制,则字符串会被截取
	*/
	if (GetModuleFileName(NULL/*AfxGetApp()->m_hInstance*/,
		szPath,sizeof(szPath)) > 0)
	{
		//<out>去掉可执行文件名
		char * pTmp	= NULL;
		pTmp	= szPath;
		while(strchr(pTmp,'\\')) 
		{ 
			pTmp = strchr(pTmp,'\\'); 
			pTmp ++; 
		} 
		*pTmp = '\0'; 
		
		strCurPath.Format("%s",szPath);			
	}
	return CString(strCurPath);
}

⌨️ 快捷键说明

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