0

我可以完美地加载第一个 DLL,但如果我尝试加载第二个 DLL,它会失败。

信息:

  • 操作系统:Windows Vista
  • FPC:2.4.4
  • 无论我是从 EXE 还是从第一个 DLL 中加载第二个 DLL,第二个都会失败。
  • 无论第一个 DLL 是否静态加载,第二个都会失败。
  • 无论哪个是要加载的第二个 DLL。
  • 我控制 DLL 的源代码。
  • 没有外部依赖。
  • 它发生在非常简单的 DLL 中。
  • GetLastError() 返回 487 错误 (ERROR_INVALID_ADDRESS)。
  • 它只发生在使用 FPC 生成的 DLL 中。

我缺少一些东西,我无法弄清楚。

谢谢

回答:好的,我发现了我的问题,我的 fp.cfg 文件中有 -WN 命令行开关

4

1 回答 1

0

我假设您正在调用 Win32 LoadLibrary() 的包装器。

您应该能够毫无问题地调用多个不同的 .dll。

建议:检查 GetLastError 并查看错误代码是什么

还:

  • 也许这与特定的 .dll 或您使用它的方式有关。

  • 在您的 .exe、.dll 和您动态加载的任何 .dll 上运行“ depends ”工具。确保所有依赖项都已解决。

于 2011-07-08T03:45:03.387 回答