2

我正在尝试在第 3 方应用程序中访问 TE 编辑(来自 ter32.dll)中的文本。(这里的第一篇文章)我查看了API并尝试动态加载 dll 以访问函数。不幸的是,ter32.dll 的这个(售后返工)有很多依赖项。我尝试根据需要动态加载每个所需的 dll,但遇到了循环依赖。ter32.dll 需要 x。x 需要 y。y 不会加载,因为它需要 x。我是否必须延迟静态加载这些?我当然希望不要,因为我不希望我的应用程序中出现开销/膨胀/依赖性。

1)我错过了什么?
2)有没有办法解决这个问题?
3) 是否有人有任何其他方式可以访问 ter32.dll 的 TE 编辑中的文本?

4

1 回答 1

3

当您加载 DLL 时,加载器将为您加载所有依赖项。这些依赖关系列在每个 DLL 的导入表中,加载器会解析它们。你不需要做任何事情。

因此,我无法理解您是如何得出您自己需要处理 DLL 依赖项的结论的。您是否以非标准方式加载此 DLL?您是否需要 WinSxS 依赖项的清单,即是否需要 MS C 运行时?还有什么我们需要知道的吗?

综上所述,在我看来,将此 DLL 加载到您的进程中不太可能有助于从具有自己独立虚拟内存的不同进程中提取文本。换句话说,我非常有信心您当前提取文本的尝试会失败。绕过虚拟内存屏障的方法是使用钩子在另一个进程中运行您的代码。

于 2011-08-19T06:43:21.667 回答