2010-07-08 36 views
1

我们有一个dll文件;让我们说X.DLL。两个嵌套的DLL

现在我们正在编写另一个DLL,我们假设使用X.DLL的一些(很少)功能的“A.DLL”。我们无法访问X.DLL的源代码。另外,我们不希望给我们的客户X.DLL和A.DLL。相反,我们想要在A.DLL中封装X.DLL,以便分发A.DLL就足够了。

是否有可能?

您的帮助表示赞赏。

新手编码器

+0

出于兴趣,你为什么不给他们X.DLL? – CJM 2010-07-08 14:22:22

+0

原因是我们不希望它们具有X.DLL中包含的所有功能。 X.DLL和A.DLL将用于开发一些应用程序,我们希望它们具有仅包含在A.DLL中的函数。 – 2010-07-08 14:25:14

+0

是的,为什么你不想给他们.DLL?试图避免执照费用? – Jeroen 2010-07-08 14:36:48

回答

3

ILMerge

ILMerge是用于合并多个 .NET组件成单个 .NET组件的实用程序。它适用于可执行文件 和DLL,并附带几个 选项用于控制处理 和输出格式。有关详细信息,请参阅 附带文档。

+0

谢谢。我会试一试。 – 2010-07-08 14:32:07

+0

我有一个场景,其中X.dll与.Net环境或Windows操作系统的后续版本不兼容。我们也没有X.dll的源代码。它只在VB6.0环境下运行/注册。在这种情况下,我们想要嵌入这个X.dll,并在与.Net兼容的vb6.0中创建一个新的.dll文件。你知道这个任务的效用吗? – bonCodigo 2015-02-25 06:00:06

0

将x.dll的源代码复制到带有所需功能的a.dll。 或将x.dll分割为两个dll's

+0

感谢您的回答,但我们无法访问x.dll的源代码。 – 2010-07-08 14:21:04

+1

OP说“我们无法访问X.DLL的源代码” – TheSean 2010-07-08 14:21:13

+0

他们没有X.DLL – CJM 2010-07-08 14:21:35

0

将一个dll封装到另一个dll是不可能的。
出路可能在于您可以从X.DLL供应商处获得一个库,并通过您的代码静态链接到它。
黑客可能会携带X.DLL作为你的dll资源,然后解压并加载到运行时。

+0

对不起ULYSES,但它当然不是“不可能的”。我建议,但并非不可能。 – torak 2010-07-08 14:25:08

+0

这不是不可能的,但它需要发送字节码,您的eslf或类似的 – 2010-07-08 14:25:28

+0

取决于DLL的性质。如果他们是托管代码,ILMerge可以做到这一点。如果不进行管理,你将不得不用Win32 LoadLibrary来解决大部分时间。 – 2010-07-08 14:37:49

2

你用c#标记了你的问题。

如果这些是托管的程序集DLL,如果代码是c#,它们将会是,那么您可以使用ILMerge完成您想要的操作。