关于在VC中的动态库dll里的自定义资源的添加和读取

关于在VC中的动态库dll里的自定义资源的添加和读取,第1张

你需要增加一个GetModuleHandle函数:

HINSTANCE hDll = GetModuleHandle(L"abc.dll")

HRSRC hRsrc = FindResource(hDll, MAKEINTRESOURCE(IDR_RT_RCDATA1), L"RT_RCDATA")

if (NULL == hRsrc)

return FALSE

DWORD dwSize = SizeofResource(hDll, hRsrc)

if (0 == dwSize)

return FALSE

HGLOBAL gl = LoadResource(hDll, hRsrc)

if (NULL == gl)

return FALSE

LPVOID lp = LockResource(gl)

if (NULL == lp)

return FALSE

把下面的代码加入初始化函数InitInstance的顶部:

//调入资源DLL

m_hDemoDLL = AfxLoadLibrary(_T("Resource.dll"))

//告诉应用程序设置资源句柄m_hDemoDLL;

AfxSetResourceHandle(m_hDemoDLL)

ExitInstance加入以下代码:

AfxFreeLibrary(m_hDemoDLL)//释放DLL资源;

在创建类型选择框New中选择MFC AppWizard(dll),创建一个新项目区,

在Step1中选择Regular DLL using MFC DLL,单击OK即可。

资源加入到DLL的rc文件

使用DLL资源例:

CString strMessage//定义strMessage为Cstring字串类型

//从resource DLL中显示字串

strMessage.LoadString(IDS_DEMO)

pDC->TextOut(60,65,strMessage)

(1)首先,打开VS2013,选择“新建项目”。我这里是在起始页上新建的。

当然,也可以从菜单栏里的“文件”,选择“新建”,选择“项目”:

(2)选择C#语言,再选择内容里的“类库”,这里我给它取了一个名字叫MyLib,接着点击“确定”。

(3)新建好的类库,就是长这样的。

(4)在这里,我新加了一个类,叫MySpecialClass,待会会用到。

(5)到这里,新加的内容就加完了,选择菜单栏里的“生成”,选择“生成解决方案”,这样就可以生成dll文件。

(6)生成成功,可以看到这个新鲜出炉的dll文件,是放在MyLib\bin\Debug文件夹里的。

它长这样。

(7)怎么用这个dll文件呢,举个例子,我又创建了一个新项目,叫MyPro。

(8)在左边,“解决方案资源管理器”中,对“引用”单击右键,选择“添加引用”。

(9)在d出框里,选择“浏览”,并没有看到刚才创建的dll文件,那么选择下方的“浏览”,找到刚才的dll文件,点击“添加”,之后点击“确定”。

(10)添加成功dll文件后,在Main函数里,能自然联想到MyLib里的MySpecialClass类而不报错。

也可以使用using。能看到这个dll文件能正常使用了。

好的,到这里就结束了。对于命名空间、using这些还有什么不懂的,大家可以先去翻翻书,补充巩固一下知识。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11569655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存