博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VC++ 模块与资源分离
阅读量:5302 次
发布时间:2019-06-14

本文共 805 字,大约阅读时间需要 2 分钟。

  在一些开发过程中,需要模块支持中英文语言切换,比较好的实现方式是从模块中将资源分离出来,做成中英文两个资源dll,根据需要加载不同的dll从而实现切换不同的语言显示。

  新建一个资源dll文件,选择Win32 Console Application

  

        

        

   工程建好后,在工程中新建一个cpp文件,输入以下代码:

1 #include 
2 extern BOOL WINAPI DllMain(HANDLE _HDllHandle, DWORD _Reason, LPVOID _Reserved)3 {4 return TRUE;5 }

  然后切换到资源选项卡,新建所需要的资源即可,最后编译生成一个语言版本的资源dll文件。

 

  模块加载资源dll:

  包含资源模块生成的resource.h文件

  一般在模块的入口(main 或Initinstance)中选择加载,示例代码如下:

1     CString strResDllPath = GetResDllPath(eLangType);2     HINSTANCE m_hInst = ::LoadLibrary(strResDllPath);3     if (m_hInst)4     {5         AfxSetResourceHandle(m_hInst);6     }

  模块析构时,添加释放资源代码:

1 if (m_hInst)2 {3     FreeLibrary(m_hInst); 4   m_hInst = NULL;5 }

   注意是在你的App类的Initinstance中添加加载资源dll的代码,而不是在你的App类的构造函数中添加。

转载于:https://www.cnblogs.com/MakeView660/p/6045949.html

你可能感兴趣的文章
Query Designer:Hierarchy层级显示
查看>>
POJ 3261 可重叠的 k 次最长重复子串【后缀数组】
查看>>
squid
查看>>
Activiti简介
查看>>
CF1157D N Problems During K Days
查看>>
BZOJ4419: [Shoi2013]发微博
查看>>
【POJ】3090 Visible Lattice Points(欧拉函数)
查看>>
使用Ruby DBI模块
查看>>
[讨论]“传递式”的攻击思想<转LN>
查看>>
ABP理论学习之N层架构
查看>>
Python 常用代码片段
查看>>
【Python实战】使用Python连接Teradata数据库???未完成
查看>>
权限系统设计概述
查看>>
sharepoint list 文档上传和删除
查看>>
Standard deviation
查看>>
sql 查出一张表中重复的所有记录数据
查看>>
linux密码破解
查看>>
【COGS-2638】数列操作ψ 线段树
查看>>
委托和接口的逆变 和协变
查看>>
(一)Vmware搭建DPDK测试平台
查看>>