zoukankan      html  css  js  c++  java
  • 在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次就会消息看不见了,但任然在原位置

    相关链接

                               

     

     




    附件列表

    • 相关阅读:
      POJ3666 Making the Grade[动态规划]
      vector内部的实现1
      win32概述
      stl概述
      C++概要简介
      类的常量成员
      模板
      c11标准
      异常处理
      pak文件的打包和解包
    • 原文地址:https://www.cnblogs.com/xe2011/p/2923677.html
    Copyright © 2011-2022 走看看