资源dll的制作与使用
来源:互联网 发布:linux 循环打开文件 编辑:程序博客网 时间:2024/05/12 22:32
我使用的IDE是VS2005。
1.制作资源dll
2.外部程序引用dll的资源
1.制作资源dll
创建一个win32 DLL的空工程,然后右击项目->“添加”->“资源”。根据自己的需要添加资源。这里我添加一个PNG图片。由于可选项里面没有PNG,所以选择“自定义”,写入PNG,确定。之后选择“PNG”,导入需要的资源。这时,会生成2个文件,resource.h和 .rc文件。打开resource.h就可以看到刚刚加入的PNG资源的ID号了。我的是107。接下来就是生成这个dll。细心的人可能发现,现在这个工程里几乎没有代码,只有一个PNG图片。现在生成dll的话编译器会报错的。右击项目->属性->链接器->高级->无入口点,选择是。现在就可以生成dll了。
2.外部程序引用dll的资源
HINSTANCE hDll = NULL; hDll = LoadLibrary("..\\debug\\resdll.dll"); HRSRC hrsrc = NULL; hrsrc = FindResource( hDll, MAKEINTRESOURCE(107), "PNG" );
MAKEINTRESOURCE(107)关键是FindResource函数,第一个参数是引用的dll的句柄,由LoadLibrary返回,第二个参数是资源的ID号,可以在resource.h中看到,我之前放入的PNG图片的ID是107。第三个参数就是资源类型。由于我的是自定义的PNG,所以参数是"PNG",如果是本来就有的资源类型比如bitmap就是 RT_BITMAP,但是有例外。如果你使用的是字符串资源,那么 FindResource()的第二个参数则不能直接使用 MAKEINTRESOURCE(nID) 了,应该使用 MAKEINTRESOURCE((nID/16)+1).
以下是另外一些资源的加载方法;
//载入动态链接库 HMODULE hDll=LoadLibrary("PureResDll"); //加载字符串 char buffer[64]; memset(buffer,0,sizeof(buffer)); int nLoad=LoadString(hDll,1,buffer,sizeof(buffer)); //加载菜单 HMENU hMenu=LoadMenu(hDll,MAKEINTRESOURCE(104)); //加载位图 HBITMAP hBmp=LoadBitmap(hDll,MAKEINTRESOURCE(103)); //加载图标 HICON hIcon=LoadIcon(hDll,MAKEINTRESOURCE(102));
0 0
- 资源dll的制作与使用
- 资源dll的制作与使用
- 制作DLL与使用DLL
- ShapeDrawable资源的制作与使用
- Dll制作与使用教程
- 制作资源dll
- 制作纯资源dll
- 制作纯资源dll
- 制作资源DLL
- dll的制作与调用
- 【CBM666 的如何制作与使用 .RES 资源文件】
- win32-Lib/DLL制作与使用
- Dll制作与使用教程一
- 纯资源(.rc)DLL创建与使用
- VC 制作纯资源 DLL
- vc 制作图片资源dll
- 纯资源 DLL 的实现与调用
- VC dll的制作和使用
- iOS 捕获未知方法的调用,避勉抛出异常
- sql server2000中使用convert来取得datetime数据类型样式(全)
- OpenCV2.4.9在Visual Studio 2013下的配置
- Installing and Configuring ODBC
- ubuntu安装hadoop详细步骤
- 资源dll的制作与使用
- HilbertCurve 希尔伯特遍历的递归实现
- linux SecureCRT ssh key认证登陆
- 《算法竞赛入门经典》上机练习——第一章
- iOS Foundation 框架中 Mutable 的类们
- 安装linux系统后,笔记本触摸板,那些让人蛋疼的事!
- 【Java基础】并发 - 多线程 - 阻塞队列
- java-内存管理
- 读书笔记-《如何阅读一本书》