我想把对话框的资源(对话框、bmp 图像)放到Dll中, 主程序中不加 Dialog 资源。在主程序中用 LoadLibrary 载入资源。具体的怎么实现那?谁有完整的例子的话给我发一个啊,或资料啊

解决方案 »

  1.   

    创建纯资源DLL作者:DEVER     分类:动态连接库(DLL) --------------------------------------------------------------------------------纯资源 DLL 是仅包含资源(如图标、位图、字符串和对话框)的 DLL。使用纯资源 DLL 可用来在多个程序之间共享同一组资源以及
    对多种语言进行本地化的应用.要创建纯资源 DLL,应创建一个新的 Win32 DLL(非 MFC)项目,并将资源添加到此项目。 创建一个字符串资源,为IDS_STRING101 其值为101 内容为TEST。
    创建一个图标资源,ID为IDI_ICON1指定 /NOENTRY 链接器选项(在工程的属性页-链接器-高级-资源仅限于DLL中选择"是 (/NOENTRY)")。/NOENTRY 防止链接器将 _main 引用链接到 DLL 中;此选项是创建纯资源 DLL 所必需的。 
    生成 DLL。 使用纯资源 DLL 的应用程序应调用 LoadLibrary 来显式链接到 DLL。
    若要访问资源,请调用一般函数 FindResource 和 LoadResource,这两个函数对任何类型的资源都有效,
    或调用下列资源特定的函数之一: FormatMessage 
    LoadAccelerators 
    LoadBitmap 
    LoadCursor 
    LoadIcon 
    LoadMenu 
    LoadString 使用完资源后,应用程序应调用 FreeLibrary。[使用例子]
    对于刚才创建的字符串和图标资源,我们使用下面方法来使用字符串资源和图标资源:首先在相应的.h文件中设定
    #define IDS_STRING101 101
    #define IDI_ICON1 102然后在处理程序中写入下代码HINSTANCE hDll;
    hDll = LoadLibrary("ResourceDll.dll");//使用字符串资源
    char strRes[MAX_PATH];
    LoadString(hDll,IDS_STRING101,strRes,MAX_PATH);
    AfxMessageBox(strRes);//使用图标资源
    AfxSetResourceHandle(hDll);
    HICON hIcon = ::LoadIcon(hDll,MAKEINTRESOURCE(IDI_ICON1));FreeLibrary(hDll);
      

  2.   

    谢谢 free_card 问题已经解决拉~~~~~      送分送分.....