2 u011522596 u011522596 于 2016.01.23 17:40 提问

C++如让程序所需的资源嵌入到生产的.dll库

我有写一个C++的程序,启动项目的输出类型为动态库.dll,这个程序引用了一些编辑器自带的.lib文件和项目中其他的一些.dll文件,
我想问下,该如何让哪些被引用的资源嵌入到我生成的.dll文件中,在移植该.dll文件时,就不需要考虑其他文件是否也要一起引用

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.24 05:41
enpterexpress
enpterexpress   Rxr 2016.01.23 18:35

带着dll文件重新生成,带着dll文件用

91program
91program   Ds   Rxr 2016.01.23 17:54

如果其它的功能是 DLL 的(且没有 LIB),估计无法实现。
如果有静态链接库,你可以考虑将它们静态链接到你的 DLL 中。

u011522596
u011522596 回复91program: 那我问下哦,如果我想使用的话,将这些dll,lib文件和最终的dll文件全部复制到在一个文件夹下,会不会要修改引用路径,能不能正常使用呢
2 年多之前 回复
91program
91program 回复degenerate_lord: DLL 是动态库,需要对应的 LIB 才能完成静态链接。
2 年多之前 回复
u011522596
u011522596 你好,我的项目有引用一个dll,还有的就一堆lib,我想问下该怎样静态链接到dll中呢
2 年多之前 回复
u011522596
u011522596 你好,我的项目有引用一个dll,还有的就一堆lib,我想问下该怎样静态链接到dll中呢
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载
介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载,程序退出后实现临时文件的自动删除,从而为解决“DLL Hell”提供了一种解决方案。这是一个很好的设计思想,而且该作者也用C++实现了,在Internet上也有相似的VB程序,但在某一技术论坛上提起这种设计方法时,有网友提出:“这种方法好是好,但就是启动速度太慢”。这是因为程序启动时实现DLL释放,然后再加载释放出来的DLL,这个过程会耗费一定的时间。鉴于此问题,经过思索,提出另一个设计方案:DLL作为资源文件嵌入程序,但不需进行DLL释放及其重新加载。本文就是对该设计方案的原理分析及使用C#编程来实现该设计方案。
DLL和EXE加载包在自身内部的资源文件
1、插入资源的方法       insert-->resource-->import,在出现的对话框中选择一个要作为资源的文件,接着在出现的对话框中Resource type:下面的框中随便自己输入一个串(如123),查找资源的时候会用到,点击OK,编译一下工程,资源插入完毕(在resource.h文件中会增加一条#define IDR_1231           130,在rc文件中会增加一
C++:采用添加资源的方式将模型文件悄悄封入dll
本博记录为卤煮使用时的记录,如有疏漏,请指正。 卤煮:非文艺小燕儿 本博地址: 采用添加资源的方式将模型文件悄悄封入dll 对于搞神经网络和深度学习的公司来说,模型文件算是核心技术文件之一。 如果给别人SDK的时候,把模型文件以原来的样子直接给人家,无疑就是把自己的核心技术拱手送人,估计很多公司还是没有这个魄力的。 所以要么给模型加密,要么直接封入API的dll文件中。第
vc中将一个独立的dll(exe),作为资源加入资源文件中
具体怎么加入、释放资源这个就不必多说了吧 加入资源:Insert-Resource-Import 要求填入类型名称,随便填个即可,比如“EXEANDDLL” 释放资源: //////////////////////////////////////////// // 加载资源、生成文件 //定位我们的自定义资源,这里因为我们是从本模块定位资源,所以将句柄简单地置为NULL即可 HRSRC hRsrc
把你的Access数据库嵌入到资源中发布
我们做程序的时候,一般如果少量的数据存储都有可能用到Access数据库, 我们再发布程序的时候也同时将此数据放置入发布程序包中一起发布. 这可能并不是一个好的方法,下面我给大家介绍一另一种方式,就是将 Access数据库嵌入到资源Dll中发布! 首先我们创建一个资源动态的类库(Resource),添加一个现有项目, 选择所有文件,加入你的mdb文件,在文件属性中'生成操作'设置为 '嵌
C#嵌入dll到资源释放的问题
有些程序的时候,可能调用外部的dll,这个时候提供给客户的时候,可能经常不小心丢失这些dll,因此可以考虑将这些dll嵌入到资源中,启动的时候进行释放。对于托管的dll,可以用打包软件合成一个exe(例如利用Imerge),但是对于一些用C++等写的非托管的dll,就比较麻烦。在这种情况下,可以考虑本文介绍的方法。 1、将需要用到的dll文件嵌入资源文件中。 (1)将需要用到的dll文件拷贝到工
C#将托管DLL嵌入exe文件
C#将托管DLL嵌入exe文件最近用winForm开发一个小程序,其中用到了HtmlAgilityPack(用于解析html)和Newtonsoft.Json(用于解析json)这两个库,由于编译后生成的exe还必须带上这两个dll,非常不爽,于是就上网寻求将其嵌入exe的方法,经过一番折腾,总算有了结果。总结起来,找到的方案有如下几个: 使用ILMerge等工具将dll嵌入exe中 将dll内嵌于
C++嵌入DLL到资源运行释放的问题
以前写过一篇博文C#嵌入dll到资源释放的问题。虽然相对于C#,C++中嵌入DLL到程序资源中,然后再释放出来的应用场合并没有那么多,但是还是有必要了解下一般的过程。结合本人在实际工作中解决此类问题的实践思路,这里介绍下最基本的一种解决方案。1 嵌入DLL到资源有些程序运行的时候,可能调用外部的DLL,用户使用时可能会不小心丢失这些DLL,导致程序无法正常运行,因此可以考虑将这些DLL嵌入到资源中,
从dll中调用嵌入的资源文件
Resource.dll源码using System;using System.Collections.Generic;using System.Text;namespace Resource{    public class ResourceDll    {        public ResourceDll()        {                    }      
PB的可执行文件所需的环境DLL
一个EXE文件(或者再加PBD文件)要提交给脱离了PowerBuilder环境的用户使用时,还必须提供一些PowerBuilder应用程序执行、数据库连接等实现所必需的环境动态链接库文件。如果缺少这些dll文件,应用程序可能无法启动,或者无法连接到数据库服务器。 这就是说,经过编译生成的PowerBuilder应用程序需要一定的运行环境。 以下几个文件在PowerBuilder