我使用的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,但是有例外。如果你使用的是字符串资源,那么 FindResourc