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这些还有什么不懂的,大家可以先去翻翻书,补充巩固一下知识。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)