在DLL中存放资源

 

在DLL中存放位图资源

 

关键点

 

 

实现过程

DLL

1.用向导新建1个MFC Dll程序文件名为 project01

2.Insert Resource导入2张.bmp位图 IDB_BITMAP1 IDB_BITMAP2

3.在Resource中定义资源

4.编译生成dll

 

#define IDB_BITMAP1                     5000

#define IDB_BITMAP2                     5001

#define所定义的变量不要使用16进制的,使用10进制数的

注意再编译的时候 所定义的资源没被系统自动换掉,否则主程序无法调用

 

调用

1.用MFC向导创建1个MFC.exe程序

2.把project01.dll复制到本项目的Debug目录下

3.在窗体上面添加2个按钮和1个Picture控件设置General-Stryle:Bitmap

4.把Picture控件的ID号改成IDC_STATIC1,关联为控件变量名为 m_pic1

5.实现代码如下(动态为对话框加载图片)

 

void CProject02Dlg::OnButton1() 
{
     HMODULE hModule = LoadLibrary("project01.dll");
    if (hModule)
    {
        HBITMAP hBmp =(HBITMAP)LoadImage(hModule,MAKEINTRESOURCE(5001),IMAGE_BITMAP,0,0,0);
        if (hBmp)
        {
            HBITMAP hOldBmp = m_pic1.SetBitmap(hBmp);
            if (hOldBmp)
            {
                DeleteObject(hOldBmp); 
            }
        }
        FreeLibrary(hModule);
    }    
}

 

 

 

  


 

备注

这纯粹是用DLl存放位图资源 然后就是调用这DLL里面的资源

 

 

按钮被单击2次就会消息看不见了,但任然在原位置

相关链接

                           

 

 




附件列表

    原文地址:https://www.cnblogs.com/xe2011/p/2923677.html