如何实现纯资源DLL 我想把对话框的资源(对话框、bmp 图像)放到Dll中, 主程序中不加 Dialog 资源。在主程序中用 LoadLibrary 载入资源。具体的怎么实现那?谁有完整的例子的话给我发一个啊,或资料啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 创建纯资源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); 谢谢 free_card 问题已经解决拉~~~~~ 送分送分..... 用Win32API 写GUI和写漂亮的GUI的几个问题 如何获取窗口内控件的句柄 vc6.0中Tools菜单下没有MFC TRACER选项 如何让exe文件只能由指定的程序启动? 制作一个简易画板: 如何设置一个目录及其子目录的访问权限 为什么出现这样的错误? 求救CTabCtrl的用法 Document设计时的小问题 VC中怎么控制窗口的初始显示大小 怎么去掉这个警告 关于if的一点想法
对多种语言进行本地化的应用.要创建纯资源 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);