VC++2005 编写只有资源文件的DLL及其调用方法

晨曦之光 发布于 2012/05/23 11:05
阅读 329
收藏 0

VC++2005 编写只有资源文件的DLL及其调用方法

作者:邵盛松  2009年5月2日

目的:将图片,图标等存入 DLL中,然后在其他程序中调用
本文示例是将bitmap文件添加到dll中然后在dll中调用

第一步:建立DLL文件
步骤:
1 点击菜单-文件-新建项目-项目类型选择Win32-模版选择Win32项目。
2 在向导中应用程序类型选择DLL,附加选项选择空

3添加资源文件,在解决方案中右键点击资源文件,添加-资源,在添加资源对话框中,新建或者添加想要添加的文件
4添加之后编译出现如下错误
error LNK2001: 无法解析的外部符号 __DllMainCRTStartup@12

解决方法:
点击菜单上的项目 -属性- 配置属性 -高级-无入口点 选择"是(/NOENTRY)"
5 编译生成DLL文件
在这里并不需要添加WinMain函数之后编译。生成的DLL的文件的名字是mydll.dll

第二步:在程序中调用
1新建一个对话框工程DLLTest
2在DLLTest 工程中的resource.h文件中,添加dll中图片文件的ID
例如#define IDB_BITMAP_BACKGROUND       7777 //7777是我自定义的ID

3为按钮添加图片,设置按钮的Bitmap属性为true,为按钮添加一个控件变量m_Button_Test

为按钮事件添加如下代码
HMODULE hModule = LoadLibrary(TEXT("mydll.dll"));
 if(!hModule)
  return;
HBITMAP    hBitmap =  LoadBitmap(hModule,MAKEINTRESOURCE(IDB_BITMAP_BACKGROUND));
m_Button_Test.SetBitmap(hBitmap);
FreeLibrary(hModule);
4编译生成DLLTest.exe文件,运行DLLTest.exe,点击按钮按钮就载入了图片


mydll项目在VC++2005 win32项目下调试通过
DLLTest在VC++2005 MFC Dialog Unicode下调试通过


原文链接:http://blog.csdn.net/flyfish1986/article/details/4142694
加载中
返回顶部
顶部