我可以做到这一点,以便第三方应用程序可以使用我的几个具有相同名称但不同版本的DLL?

发布于 2025-02-08 17:15:44 字数 876 浏览 1 评论 0原文

我开发了第三方应用程序(我们称其为app.exe)用作附加插件的DLL库(我们称其为Comp.dll)。

我不可能对app.exe进行干预。

在此阶段,通过process app.exe同时使用多个comp.dll的process app.exe加载问题。

文件和文件夹结构如下:

应用程序夹

   |______  app.exe

   |______   comp ver 1.0 folder
                            |______ comp.dll

   |______ comp ver 2.0 folder
                            |______ comp.dll

有必要使app.exe在其寿命中动态,从“ Comp Ver 1.0文件夹”和“ Comp Ver 2.0”中的comp.dll进行动态comp.dll。文件夹同时。

我将尝试描述一些例子。 “ app.exe”与某些数据文件“ test.dat”一起使用。 “ test.dat”处理数据的功能在“ comp.dll”中实现。在“ tast.dat”中,还提供了将其存储在磁盘存储设备上的“ comp.dll”的路径。 “ app.exe”从“ test.dat”中读取“ comp.dll”路径,加载此dll并调用函数以处理“ test.dat”的数据。对于一个文件,全部还可以。现在,让我们考虑两个文件:“ test1.dat”和“ test2.dat”。如果两个文件都使用同一版本的“ comp.dll”,则一切都很好,但是如果版本不同,则会发生冲突,因为首先使用已加载的DLL,而第二个则未加载。

我知道这些问题是在清单的帮助下解决的,但是我不能以任何方式影响清单app.exe。

您能告诉我是否有任何解决此问题的方法?

I developed a DLL library (let's call it comp.dll) used by a third-party application (let's call it app.exe) as an additional plugin.

No intervention in app.exe on my part is possible.

At this stage, there is a problem loading by process app.exe of several comp.dll different versions simultaneously.

The file and folder structure is as follows:

App folder

   |______  app.exe

   |______   comp ver 1.0 folder
                            |______ comp.dll

   |______ comp ver 2.0 folder
                            |______ comp.dll

It is necessary to make it possible for the app.exe to dynamically, during its lifetime, load comp.dll from 'comp ver 1.0 folder' and comp.dll from 'comp ver 2.0 folder' at the same time.

I'll try to describe some examples. "App.exe" works with some data file "test.dat". Functions for processing of data from "test.dat" are implemented in "comp.dll". In "tast.dat" also provided the path to "comp.dll" where it is stored on the disk storage device. "App.exe" read path to "comp.dll" from "test.dat", load this dll and call functions to process data from "test.dat". For one file all is ok. Now, let's consider two files: "test1.dat" and "test2.dat". If both files use the "comp.dll" of the same version, everything is fine, but if versions are different, conflicts arise, since the dll that was loaded first is used, and the second one is not loaded.

I know that such problems are solved with the help of manifests, but I can't influence the manifest app.exe in any way.

Can you please tell me if there is any way to solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文