VC++中模塊支持多語言的方法

BOOL CRMApp::SetLangType()
{
	TCHAR szPath[1024] = { 0 };
	TCHAR szFileName[1024] = { 0 };
	GetModuleFileName(NULL, szPath, 1024);
	*(_tcsrchr(szPath, _T('\\'))+1) = NULL;

	_stprintf_s(szFileName,MAX_PATH, _T("%s%s"), szPath, _T("UserCfg.ini"));

	int nLng = ::GetPrivateProfileInt(_T("SYS_SET"),_T("LangType"),0,szFileName);
	switch( nLng )
	{
	case 0:
		m_LangID = 0x804;//中文簡體
		break;
	case 1:
		m_LangID = 0x409;//美式英語
		break;
	case 2:
		m_LangID = 0x404;//中文繁體
		break;
	default:
		m_LangID = 0x804;//中文簡體
		break;
	}

	CString str;
#ifdef _WIN64
	str.Format(_T("RightCtrl%x_x64.DLL"),m_LangID);
#else
	str.Format(_T("RightCtrl%x.DLL"),m_LangID);
#endif
	m_hLangDLL = LoadLibrary(str);
	if ( m_hLangDLL )
		AfxSetResourceHandle(m_hLangDLL); 
	else
		m_hLangDLL = AfxGetResourceHandle();
	return TRUE;
}

RightCtrl%x.DLL爲額外增加的項目工程生成的資源文件DLL,可通過複製粘貼.rc文件,注意在資源中要切換對應的語言類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章