您的位置:首页 > 编程语言 > C语言/C++

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

2009-05-02 02:49 429 查看
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下调试通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: