MFC DLL (二) 之纯资源,多语言的实现
2017-10-20 15:39
267 查看
参考:http://blog.csdn.net/wangjieest/article/details/7022348
一、创建主工程
1.MFC Application-> MultiLanguage
2.Next-> Application type: Dialog based; Use of MFC: Use MFC in a shared DLL-> Finish
3.Remove 而不是 Delete, Resoure.h, Resource Files 中的所有文件
二、创建DLL (chinese, english)
1.在主工程目录下添加 MFC DLL-> chinese, english 两个 DLL 项目 (也可以在其他地方添加,如果在其他地方添加,最后要复制 .dll 文件到主工程中)
2.Next-> DLL type: Regular DLL using shared MFC DLL-> Finish
3.在两个 DLL 项目中 Delete, Resoure.h, Resource Files 中的所有文件
4.将主工程中Remove 的文件添加到两个 DLL 项目中
5.修改界面中的显示语言,中文的 DLL 显示中文,英文的 DLL 显示 英文 (注意 resource.h 等资源的同步)
6.分别编译两个 DLL 项目
三、主工程
在 CMultilanguageApp 类中添加如下的成员变量:
构造函数中初始化:
[cpp] view plain copy CMultilanguageApp::CMultilanguageApp()
{
m_bChinese = TRUE;
m_hLangDLL = NULL;
}
在InitInstance()函数修改资源加载顺序:[cpp] view plain copy BOOL CMultilanguageApp::InitInstance()
{
AfxEnableControlContainer();
if (m_bChinese)
{
m_hLangDLL=::LoadLibrary(L"chinese.dll");
}
else
{
m_hLangDLL=::LoadLibrary(L"english.dll");
}
AfxSetResourceHandle(m_hLangDLL);
……
}
别忘了ExitInstance()函数释放掉加载的dll资源[cpp] view plain copy int CMultilanguageApp::ExitInstance()
{
if(m_hLangDLL)
AfxFreeLibrary(m_hLangDLL);
return CWinApp::ExitInstance();
}
最后编译运行!
一、创建主工程
1.MFC Application-> MultiLanguage
2.Next-> Application type: Dialog based; Use of MFC: Use MFC in a shared DLL-> Finish
3.Remove 而不是 Delete, Resoure.h, Resource Files 中的所有文件
二、创建DLL (chinese, english)
1.在主工程目录下添加 MFC DLL-> chinese, english 两个 DLL 项目 (也可以在其他地方添加,如果在其他地方添加,最后要复制 .dll 文件到主工程中)
2.Next-> DLL type: Regular DLL using shared MFC DLL-> Finish
3.在两个 DLL 项目中 Delete, Resoure.h, Resource Files 中的所有文件
4.将主工程中Remove 的文件添加到两个 DLL 项目中
5.修改界面中的显示语言,中文的 DLL 显示中文,英文的 DLL 显示 英文 (注意 resource.h 等资源的同步)
6.分别编译两个 DLL 项目
三、主工程
在 CMultilanguageApp 类中添加如下的成员变量:
private:BOOL m_bChinese;HINSTANCE m_hLangDLL;
构造函数中初始化:
[cpp] view plain copy CMultilanguageApp::CMultilanguageApp()
{
m_bChinese = TRUE;
m_hLangDLL = NULL;
}
在InitInstance()函数修改资源加载顺序:[cpp] view plain copy BOOL CMultilanguageApp::InitInstance()
{
AfxEnableControlContainer();
if (m_bChinese)
{
m_hLangDLL=::LoadLibrary(L"chinese.dll");
}
else
{
m_hLangDLL=::LoadLibrary(L"english.dll");
}
AfxSetResourceHandle(m_hLangDLL);
……
}
别忘了ExitInstance()函数释放掉加载的dll资源[cpp] view plain copy int CMultilanguageApp::ExitInstance()
{
if(m_hLangDLL)
AfxFreeLibrary(m_hLangDLL);
return CWinApp::ExitInstance();
}
最后编译运行!
相关文章推荐
- (MFC中使用dll纯资源) 实现国际化的多语言版本
- MFC加载纯资源DLL ,常用于实现多语言
- VC中使用纯资源dll实现多语言版本
- MFC以资源形式实现多语言版本
- 资源DLL与语言选择菜单的实现
- MFC - 资源文件实现多语言界面
- MFC多国语言——资源DLL
- VC中使用纯资源dll实现多语言版本(转)
- windows mobile 下用资源DLL实现多语言支持的方法
- 实现MFC扩展DLL中导出类和对话框
- 如何为 MFC 应用程序创建本地化资源 DLL
- 访问需要HTTP Basic Authentication认证的资源的各种语言的实现
- 编程使用资源文件实现多语言页面(In Action)
- windows C++ 资源形式实现多语言版本 .
- MFC的多国语言界面的实现
- MFC多国语言界面的实现
- 纯资源的dll文件来实现多语言
- VC++语言实现MFC剪贴板操作实例代码
- MFC程序调用Dll中的对话框资源
- 用VC纯资源dll制作多语言界面程序