问题标签 [resource-dll]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
1701 浏览

c++ - 防止资源 DLL 被黑客入侵

我使用 C++/MFC 进行开发,并将所有资源放在一个单独的 DLL 中。

我见过资源 DLL 被修改并且产品以不同的名称、图形等非法销售的案例。

如何防止资源 DLL 被修改/黑客攻击?

0 投票
1 回答
1068 浏览

com - 如何获取 Windows SDK 中的资源 DLL 代码示例以编译和运行?

我目前正在尝试在 Windows Server 2003 和 2008 上构建资源 DLL。我目前正在使用随 Windows SDK 提供的资源 DLL 代码示例,但我无法让它们工作。

在 Windows Server 2008 上,我成功编译了 Windows 7 SDK ClipBook Server 示例,但无法让它在集群中正常工作。当我使用“cluster restype /create /dll”将资源作为资源类型插入集群时,它可以工作,但是资源以未知类型而不是剪贴簿服务器类型列出,因为我认为它应该具有在资源 DLL 的代码中定义的类型。我也成功地创建了这种类型的资源,但我永远无法让它上​​线。我总是得到错误:

发生系统错误 5079 (0x000013d7)。指定的节点不支持这种类型的资源。这可能是由于版本不一致或此节点上缺少资源 DLL。

尽管资源位于集群中的所有节点上,包括我尝试启动资源的节点,但这是事实。

在 Windows Server 2003 上,我使用的是 Platform SDK 5.2 版,我什至无法编译 ClipBook Server Resource DLL 代码示例。我总是收到MIDL1001 错误,说它无法打开文件 cluscfgserver.idl。我将文件位置的路径添加到项目的包含路径中。那没有用。当我尝试对文件的路径进行硬编码时,在尝试链接该文件时出现了几个链接器错误。

如果有人对这些问题有所了解,我将不胜感激。

0 投票
1 回答
1279 浏览

visual-studio - 如何访问资源dll中的文件

我在 Visual Studio 2005 中使用 Visual C++ 为 IE 插件创建了资源 DLL,但我无法访问 DLL 中的文件(html 和图标)。我尝试了使用和不使用资源文件,但我仍然无法访问它们。/NOENTRY 选项已设置,因为它是一个资源 dll。要访问资源,我使用类似于以下的路径:“res://C:\Program Files\MyApp\MyDLL.dll/myfile.htm”,但它似乎不起作用。我错过了一步还是我做错了什么?请告诉我。

谢谢,

奥利维尔。

0 投票
1 回答
16620 浏览

visual-c++ - 如何在 VC++ 中从资源中加载文本文件?

我正在用 VC++ 编写一个 DLL,我需要使用外部文本文件。我现在有这样的事情:

我知道我可以在资源中拥有这个文件,对吗?

我通过转到“ResourceView”->“添加资源”->“导入”添加了我的文本文件。我选择了我的文本文件并创建了自定义资源类型。

如何访问此文件以使用类似于上面的代码?我有 Resource.h 但我应该怎么做?我也可以编辑我的资源文本文件吗?

0 投票
1 回答
362 浏览

visual-c++ - 如何从此 DLL 修改 DLL 中的资源?

我正在使用 VC++ 和 ATL 为 IE 编写附加组件。这是一个简单的 DLL,我有一个用作资源的文本文件。这个答案帮助我做到了这一点。

我有一个关于更新资源的问题。MSDN描述了如何做到这一点,但有一个函数(BeginUpdateResource)需要 exe 或 dll 的文件名和资源。

是否可以我的 DLL 更新我的 DLL 中的资源?我可以很容易地阅读它,但要更新我必须提供 DLL 的名称。有必要吗?

此外,如果我不提供 DLL 的完整路径,它会在桌面上查找文件,而不是 DLL 的存储位置。我不知道为什么会这样。

0 投票
2 回答
190 浏览

c++ - 在编写 MFC 应用程序之前或之后创建卫星 dll 是否更好

我正在开发 MFCForm应用程序,我知道我将不得不以多种语言发布它。我计划使用卫星 DLL 来实现这个目标。顺便说一句,我正在使用 Visual Studio 2012。

我已经读过一些书,但我仍然是这个主题的新手。为了创建一个包含Form其他语言的附属 DLL,我必须Form在新 DLL 项目的资源文件中复制 DLL,为 DLL 指定特定名称,将/NOENTRY选项添加到链接器,然后翻译Form.

问题是,Form在不久的将来可能会发生变化(移动/删除/添加控件)。如果我现在创建附属 DLL,我担心如果我需要更改Form.

我的问题是:我应该等到我完成我的应用程序然后创建附属 DLL,还是在 VS 中有一种机制,或者允许我在一个地方对我的 DLL 进行修改?

0 投票
1 回答
863 浏览

mfc - MFC 从加载的 dll 资源中查询读取顺序(RTL)?

我们有一个旧的 MFC 应用程序,已本地化为多种语言。我们有一个语言菜单,允许用户选择语言(需要重新启动应用程序)。When an RTL language such as Arabic is selected, the main window frame, and dialogs created in code via calls like AfxMessageBox, remain in LTR; 即使在以阿拉伯语运行 Windows 的系统上运行。我想根据加载的资源类型在我们创建的所有窗口上设置 WS_EX_LAYOUTRTL 位。有没有办法使用从 AfxGetResourceHandle 检索到的句柄来查询资源是否为 RTL?如果没有,还有其他方法可以做到这一点吗?

编辑:

所以为了澄清,我的问题是我的主窗口框架和所有动态对话框都保持在 LTR 布局中,即使加载的资源 dll 是 RTL。我首先在我的应用程序 initinstance 函数中加载资源 dll,该函数基于存储在注册表中的三个字母代码,用户通过从语言菜单下拉菜单中选择一种语言来设置该代码。我所有来自 dll 的资源都可以正常工作。我只有在主框架上存在问题,以及发生错误时我们加载的通用对话框(例如消息框)。也许这个代码片段可以帮助解释我在寻找什么:

如果不是这种方法,那么我是否可以使用任何函数来根据区域设置信息(如三字母国家代码或语言 ID)确定阅读顺序?在 windows7 版本上,我可以执行以下操作,但我们需要支持 windows xp :(。

编辑2:

仍在努力实现这一目标。我有以下我认为应该可以工作的代码,但事实并非如此。我知道我正在获取句柄的对话框将 layoutrtl 设置为 true,并且它包含三个项目。当下面的代码执行时,dwextendstyle 为 0,cdit 也为 0,但它应该是 3。有没有人看到我在这段代码中做错了什么?我确实验证了 AfxGetResourceHandle 正在返回我的阿拉伯语资源的句柄。

在我的资源文件中,关于对话框的定义是这样的,但我似乎无法掌握代码中的 EXSTYLE ......

谢谢。

0 投票
1 回答
440 浏览

c++ - 使用 MFC 对话框编辑器通过纯资源 DLL 添加事件处理程序

最初,我的 MFC 程序有一个 .rc 文件,其中包含两种语言的资源。但是,现在我在两个单独的仅资源 dll 项目中有两个 .rc 文件(在同一个解决方案中),并使用 LoadLibrary() 和 AfxSetResourceHandle() 动态选择语言(我参考了这篇文章)。

它似乎运行良好,但一个问题是我无法正确使用对话框编辑器来处理纯资源 dll 项目中的对话框。它正常显示对话框,但我无法通过双击控件或使用属性菜单来添加事件处理程序。有什么方法可以连接同一解决方案中不同项目中的代码和资源文件?

编辑

我稍微改变了方法。我没有在单独的资源项目中创建新的 RC 文件,而是在主项目中创建它们并将它们从构建中排除。我让它们被单独的资源项目引用。

重要的一点是我添加#include "resource.h"了每个 RC 文件的只读符号指令(您可以通过在资源视图中右键单击 RC 文件并选择资源包含项来执行此操作)。"resource.h"这是与主项目的原始 RC 文件相关的文件,该文件具有多种语言的资源。我不知道为什么要添加它,但卫星 dll 似乎有必要运行良好。

剩下的一个问题是如何维护多个 RC 文件。对于添加资源,如果我要维护原始 RC 文件及其 resource.h 文件,我可能必须先将资源添加到原始 RC 文件中,然后将它们复制到每种语言特定的 RC 文件中。这是正确的方法,还是我可以在没有原始 RC 文件的情况下继续?

0 投票
1 回答
758 浏览

c# - 如何编辑和重新编译 ac# resource-dll

我一直在尝试编辑资源文件,以添加对新语言的支持,但这就是发生的事情,

在某些 dll 反编译器中,我看不到资源文件,(Resource Turner,PE Explorer ...)

资源调谐器

在 .Net Reflector 中,我看到了资源文件,但我无法编辑它

.Net 反射器

我能做的是使用该Reflector FileDisassembler工具反汇编 dll,这给了我一个 C# sln 文件,这似乎不是一个完整的项目

VS

但是当我将项目编辑并重新编译为 dll 文件并将其放回应有的位置时,它会生成错误,因为 dll 无效

任何人都可以帮助我或告诉我正确的方向。

PS 1,显然 dll 签名过程不是问题,因为这个 dll 只是一个资源文件,应用程序只是在运行时或类似的东西中对其进行签名,我不太确定它是如何完成的,但我有读到我不需要担心这个。

PS 2,我想做的事情是 100% 可行的,因为一些公司已经使用这种方法很长时间了。

0 投票
0 回答
198 浏览

delphi - 如何使用翻译编辑器本地化 RCDATA 资源

我将一些图像和文本作为 RCDATA 资源嵌入到我的可执行文件中。app.rc我的项目包括为此目的的特殊文件:

稍后我将使用TResourceStream.

我希望将此app.rc文件本地化并包含到资源 dll 中。我找不到将不同文件包含为不同语言的 RCDATA 资源的方法。主可执行文件应包含一组文件(text1.rtf, Images\image1.png)作为资源,资源 DLL 应包含另一个版本的text1.rtf,Images\image1.png文件。