【发布时间】:2014-09-17 17:35:35
【问题描述】:
我遇到了 LoadLibrary 的问题,这是我以前从未遇到过的问题,这是我第一次看到这个问题,我正在尝试在“C:\Program Files (x86) 中加载一个模块“nss3.dll” )\Mozilla Firefox\" 与 LoadLibrary,为了从中导入一些函数,但返回值为 0 失败,我尝试从 system32 文件夹硬编码一个 .dll,它工作正常,有什么想法吗?
编辑:我忘了提,解决这个问题的一种方法是调用 SetCurrentDirectory,然后在不指定 .dll 路径的情况下导入模块,但事实并非如此,我想知道为什么它会发生在我身上.
编辑:这里有一些 sn-p(可行):
var
NSSModule: HModule;
begin
SetCurrentDir('C:\Program Files (x86)\Mozilla Firefox');
NSSModule := LoadLibrary('nss3.dll');
这个,不工作,不知道为什么......:
var
NSSModule: HModule;
begin
NSSModule := LoadLibrary('C:\Program Files (x86)\Mozilla Firefox\nss3.dll');
【问题讨论】:
-
我们无法调试您未向我们展示的代码。如果您需要帮助找出代码不起作用的原因,请发布您的代码。在此之前,您可以阅读 MSDN 上LoadLibrary 的文档,特别是关于它如何定位库的部分。
-
您的应用程序是 32 位还是 64 位?您不能将 32 位 DLL 加载到 64 位进程中(反之亦然)...
-
@SertacAkyuz GetLastError 返回 126(未找到模块),有趣的是 .dll 在那里。
-
@jlahd 我的应用程序是在 64 位 Windows 上运行的 32 位,我认为 .dll 是 32 位。
标签: delphi firefox delphi-xe2 loadlibrary