vb调用dll:纯资源DLL制作及调用



     DLL 是仅包含资源(如图标、位图、串和对话框) DLL使用纯资源 DLL 是在多个的间共享同组资源好思路方法提供其资源被针对多种语言进行本地化应用也是种好思路方法
    若要创建纯资源 DLL请创建个新 Win32 DLL(非 MFC)项目并将资源添加到此项目 
    在“新建项目”对话框中选择“Win32 项目”并在“Win32 项目向导”中指定 DLL 项目类型 
    为 DLL 创建个包含资源(如串或菜单)新资源脚本并保存该 .rc 文件如果该.rc文件包含位图用记事本打开它可以看到下面这样段 
DIB_BKGD_HF             BITMAP            \"bkgd_**.bmp\"
DIB_BKGD_GT  BITMAP    \"bkgd_***.bmp\"
DIB_BKGD_BF  BITMAP    \"bkgd_*****.bmp\" 
    这些就是针对位图申明将相应位图添加到这个里面就行了 
    在“项目”菜单上单击“添加现有项”然后在项目中插入这个新 .rc 文件 
    指定 /NOENTRY 链接器选项/NOENTRY 防止链接器将 _ 引用链接到 DLL 中;此选项是创建纯资源 DLL 所必需 
生成 DLL
    使用纯资源 DLL 应用 LoadLibrary 来显式链接到 DLL若要访问资源 FindResource 和 LoadResource这两个对任何类型资源都有效下列资源特定
FormatMessage 
LoadAccelerators 
LoadBitmap 
LoadCursor 
LoadIcon 
LoadMenu 
LoadString 
使用完资源后应用 FreeLibrary 
下面部份是介绍说明下资源中BMP如何动态加载并显示 
    hmodule = LoadLibrary(\"ExtendDLL.dll\");
    HDC   m_hdcMem;
    m_hdcMem = CreateCompatibleDC(hdc);
    BITMAP bm;
    RECT rect; 
    HBITMAP    hBitmap =  LoadBitmap(hmodule,\"DIB_BKGD_HF\");   //MAKEINTRESOURCE(IDB_BITMAP1)
    //HBITMAP    hBitmap = ( HBITMAP )LoadImage( hmodule, \"DIB_BKGD_HF\",IMAGE_BITMAP,0,0,LR_DEFAULTSIZE);
    GetObject( hBitmap,  BITMAP, &bm);
    SelectObject( m_hdcMem, hBitmap);
    GetClientRect( hWnd, &rect);
    //::SetStretchBltMode(hdc,COLORONCOLOR); [Page]
    //::StretchBlt(hdc, rect.left, rect.top, rect.right, rect.bottom, m_hdcMem, 0, 0, bm.bmWidth, bm.bmHeight,SRCCOPY);
    BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,m_hdcMem,0,0,SRCCOPY);
    ReleaseDC( hWnd, m_hdcMem );
    FreeLibrary(hmodule);
Tags:  调用dll vc调用dll java调用dll vb调用dll

延伸阅读

最新评论

发表评论