你如何在FreePascal中加载多个库?

时间:2011-07-08 03:37:51

标签: windows dll freepascal

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

信息:

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

我缺少一些东西,我无法理解。

由于

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

1 个答案:

答案 0 :(得分:0)

我认为你正在调用Win32 LoadLibrary()的包装器。

你应该可以毫无问题地调用多个不同的.dll。

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

ALSO:

  • 也许是关于那个特定的.dll,或者你使用它的方式。

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