VC Dll 中的资源 使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC Dll 中的资源 使用相关的知识,希望对你有一定的参考价值。

我在Dll中加入了资源文件,但是在使用此Dll的Exe中却访问不到此资源,何解?

首先创建一个WIN32 DLL工程,不是MFC的DLL,然后创建一个资源文件 *.RC,添加到资源DLL的工程中去。然后添加一个初始化DLL的原文件。

#include

extern "C "
BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID )

return 1;


这是纯资源DLL所必须需的代码,保存这个文件为*.CPP。编译这个资源DLL。

在应用程序显示的调用这个DLL,使用LoadLibrary函数装入资源DLL,FindResource和LoadResource来装入各种资源,或者使用下列的特定的资源装入函数:

FormatMessage
LoadAccelerators
LoadBitmap
LoadCursor
LoadIcon
LoadMenu
LoadString
当资源使用结束,你的应用程序须调用FreeLibrary函数来释放资源。

下面就讲一下如何调用编写好的资源DLL

首先在应用程序中声明一个DLL的句柄,HINSTANCE m_hLibrary;在OnCreate( )函数中调用LoadLirbrary( ),在OnDestory( )中调用FreeLibrary()。
参考技术A FindResource(GetModuleHandle("xx.dll"), lpName,lpType);

vc中如何将dll件和exe编译成一个exe文件?

我自己写了一个dll,想把它和exe文件编译在一起,形成一个新的exe文件。我在网上查了很久,但都没找到具体的方法。有一种说是将dll作为资源导入到exe中,当运行exe文件的时候,先释放dll资源。希望哪位大侠帮我解决下,越详细越好!

参考技术A 在项目属性中设置就可以,以VS2005为例,如下图选择第二项,就会把MFC的DLL编译到EXE文件中,文件长度增加大约400多K 参考技术B .dll能被.exe文件运行时调用,你得在那个.exe对应的源代码中调用.dll才行的……
.exe是编译生成的可执行文件,怎么可以拿它来编译呢……本回答被提问者采纳
参考技术C 那个exe是已生成的?

以上是关于VC Dll 中的资源 使用的主要内容,如果未能解决你的问题,请参考以下文章

用vc对 dll 打包 怎么做??运行的时候 提示找不到 xx.dll 文件

VC2008以资源形式实现多语言版本

vc中如何将dll件和exe编译成一个exe文件?

VS2012:“找不到资源编译器 DLL。请确保路径正确。”

静态库中的 VC++ 资源

从 VB6 访问 C++ DLL 中的位图资源