Delphi中如何实现加载同一DLL的两个实例,能否简化为一个长尾?

2026-04-10 16:292阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计233个文字,预计阅读时间需要1分钟。

Delphi中如何实现加载同一DLL的两个实例,能否简化为一个长尾?

这是我的问题:我想创建同一个DLL的两个独立的实例。以下不起作用,因为Handle1和Handle2将获得相同的地址:

Handle1 :=LoadLibrary('mydll.dll');Handle2 :=LoadLibrary('mydll.dll');

以下工作,但我必须复制:

Handle1 :=LoadLibrary('mydll.dll');Handle2 :=LoadLibrary('mydll.dll');

这是我的问题:我想创建同一DLL的两个单独的实例.

以下不起作用,因为Handle1和Handle2将获得相同的地址

Handle1 := LoadLibrary('mydll.dll'); Handle2 := LoadLibrary('mydll.dll');

以下工作,但我必须复制DLL并将其重命名为其他东西(这看起来有点傻)

Handle1 := LoadLibrary('mydll.dll'); Handle2 := LoadLibrary('mydll2.dll');

有没有办法只有一个DLL文件,但加载它的几个实例?

我不认为这是可能的.

你必须编写一个加载dll的.exe.然后你可以跨越多个进程(.exe),每个进程都会运行自己的dll实例.您必须使用IPC(进程间通信)技术与.exes进行通信.当然可行,但不是一个明智的选择.

Delphi中如何实现加载同一DLL的两个实例,能否简化为一个长尾?

本文共计233个文字,预计阅读时间需要1分钟。

Delphi中如何实现加载同一DLL的两个实例,能否简化为一个长尾?

这是我的问题:我想创建同一个DLL的两个独立的实例。以下不起作用,因为Handle1和Handle2将获得相同的地址:

Handle1 :=LoadLibrary('mydll.dll');Handle2 :=LoadLibrary('mydll.dll');

以下工作,但我必须复制:

Handle1 :=LoadLibrary('mydll.dll');Handle2 :=LoadLibrary('mydll.dll');

这是我的问题:我想创建同一DLL的两个单独的实例.

以下不起作用,因为Handle1和Handle2将获得相同的地址

Handle1 := LoadLibrary('mydll.dll'); Handle2 := LoadLibrary('mydll.dll');

以下工作,但我必须复制DLL并将其重命名为其他东西(这看起来有点傻)

Handle1 := LoadLibrary('mydll.dll'); Handle2 := LoadLibrary('mydll2.dll');

有没有办法只有一个DLL文件,但加载它的几个实例?

我不认为这是可能的.

你必须编写一个加载dll的.exe.然后你可以跨越多个进程(.exe),每个进程都会运行自己的dll实例.您必须使用IPC(进程间通信)技术与.exes进行通信.当然可行,但不是一个明智的选择.

Delphi中如何实现加载同一DLL的两个实例,能否简化为一个长尾?