(转)vc++使用纯资源Dll

纯资源 DLL 是仅包含资源(如图标、位图、字符串和对话框)的 DLL。使用纯资源 DLL
是在多个程序之间共享同一组资源的好方法。这种方法也经常用来解决多国语言问题。下面就来介绍下在vs 2005 下如何使用纯资源Dll.

1、新建一个 MFC DLL 项目,设置为 创建规则Dll ,然后打开资源视图,添加一个字符串资源和一个图片资源。然后设置项目属性,

将 配置属性-链接器-高级下的 无入口点选项设为 是(/NOENTRY)  , 防止链接器将
_main 引用链接到 DLL 中;此选项是创建纯资源 DLL 所必需的。最后编译项目。

2、再建一个测试项目,把前面 编译的dll拷到项目目录(或将前面的项目添加为引用,这样每次修改了资源dll,不用拷贝)。


Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 HMODULE hModule = LoadLibrary("ResourceDll.dll");
if (hModule == NULL)
{
MessageBox("加载资源文件失败!");
return true;
}
char buffer[255];
memset(buffer,0,sizeof(buffer));
LoadString(hModule,2000,buffer,sizeof(buffer));
SetDlgItemText(IDC_STATIC,buffer);
HBITMAP hBitmap = LoadBitmap(hModule,MAKEINTRESOURCE(2001));

if (hBitmap == NULL)
{
MessageBox("加载图片资源失败!");
return true;
}
((CStatic*)GetDlgItem(IDC_STATIC_BITMAP))->SetBitmap(hBitmap);
FreeLibrary(hModule);

时间: 2024-11-01 04:15:35

(转)vc++使用纯资源Dll的相关文章

使用纯资源DLL文件实现多语言菜单、界面文字、Tooltips等[转]

在使用vc写简繁体通用程序时,对实现菜单.界面.Tooltips等的文字时无法实现通用.如果写简体和繁体各一套程序,那肯定不现实.查找所有资料和文章都只能实现菜单的多语言,且使用起来也不方便:并且无法实现界面.Tooltips等的多语言.因而,采用纯资源的DLL文件来实现多语言. 纯资源DLL文件实现步骤如下: (1)创建简繁体MDI或SDI程序后,把VC框架自动创建的.rc,.rc2,.ico,.bmp等文件从程序框架中删除: (2)使用Projects的Win32 Dynamic-Link

VC释放EXE资源文件

原文地址:http://blog.csdn.net/wangningyu/article/details/4378378 今天有个朋友问到VC能否释放多个EXE.DLL或WAV等文件,我便做了个实例给他. (注意:以下释放资源代码是不受文件扩展名所限制的,你可以释放更多类型文件) 下面是我写了个很方面的函数给大家用! 1.工程A要释放的程序是一个简单的MessageBox,源码如下: [cpp] view plaincopyprint? #include <windows.h> int WIN

VC++ 模块与资源分离

在一些开发过程中,需要模块支持中英文语言切换,比较好的实现方式是从模块中将资源分离出来,做成中英文两个资源dll,根据需要加载不同的dll从而实现切换不同的语言显示. 新建一个资源dll文件,选择Win32 Console Application 工程建好后,在工程中新建一个cpp文件,输入以下代码: 1 #include <Windows.h> 2 extern BOOL WINAPI DllMain(HANDLE _HDllHandle, DWORD _Reason, LPVOID _Re

VC与易语言DLL互相调用方法

VC与易语言DLL互相调用方法 时间:2014-05-09 10:11来源:未知 作者:admin 点击: 4194 次 在编写程序的时候往往需要调用到别的语言编写的DLL文件,下面先来看一下在易语言中如何调用VC编写的DLL呢,首先用VC编写一个简单的DLL文件,代码如下: int WINAPI add(int x,int y) { return x+y; } 这是一个简单的两个数加法操作,返回两个数相加的结果,这里我生 在编写程序的时候往往需要调用到别的语言编写的DLL文件,下面先来看一下在

vc调用delphi的dll 参数传递 报错

可能原因: 调用方式约定不一致. 函数调用约定如下: 1. __cdecl:C 和 C++ 程序的缺省调用规范. 2. __stdcall:标准调用约定(即WINAPI调用约定),也就是pascal调用约定. 如果VC调用时,调用的约定方式和delphi的dll中函数约定方式不一致,就会出问题.

VC调用易语言DLL

易语言方面: .版本 2 .子程序 show, , 公开 ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中. ***注意不要修改本子程序的名称.参数及返回值类型. 载入 (窗口1, , 真) .子程序 add, 整数型, 公开 .参数 x, 整数型 .参数 y, 整数型 返回 (x + y) VC调用方法: void CWebcyzDlg::OnButton1() { //动态加载DLL的方法 HINSTANCE

关于在VB.NET中调用使用VC++编写的类库dll的一点笔记

前言 结对作业要求一出来,我就立刻想到了把“计算核心”封装成dll,然后使用vb.net编写UI调用dll的思路.然而在实现过程中却遇到了很多的问题. 我在这个过程中是负责使用vb.net编写UI并调用编写好的DLL进行计算的. 目标 使用c++把类封装到dll,并在vb.net中调用该dll,使用该dll中封装好的类.在查找资料的过程中,发现vb.net调用dll的方法主要有两种. (IDE:Visual Studio 2013 professional) 方法一:使用Declare语句 vb

怎样在VC中生成一个DLL

http://blog.sina.com.cn/s/blog_79ba23780101hcx9.html 三 VC编写DLL 我使用VC++编写一个文件加密的DLL,并且在C#中调用. 编写一个动态库很简单,以VS2010为列,我们在VC++下选择[WIN32]--[WIN32项目].在应用程序向导中,选择应用程序类型为DLL,并且选择为空项目.然后添加一个.h文件和一个.cpp文件

VC++6.0生成DLL

一.生成DLL文件 1.菜单项“文件”——>“新建”——>“工程”——>“Win32 Dynamic-Link Library”.创建一个工程项目,为这个工程取个名字为“test”.在这里我选择“创建一个简单的DLL”,此时在VC++界面上会有一个树形文件结构. 2.看到这个文件结构就大概明白,Source Files是放源码的,也就是以.cpp为后缀的文件:Header Files就是以放头文件,也就是以.h为后缀的文件.这个StdAfx.h和StdAfx.cpp都是自动生成的,这个S