问题标签 [loadlibrary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6122 浏览

windows - 使用清单在 LoadLibrary 中搜索 Windows 路径

如果您在LoadLibrary没有路径的情况下调用(例如,LoadLibrary("whatever.dll")Windows 通常会遵循其标准搜索算法,与它用于查找 EXE 的算法相同。

我的问题是:假设应用程序清单指定了系统 DLL 的特定版本,例如 comctl32.dll 6.0。在这种情况下,会LoadLibrary("comctl32.dll")立即转到正确的并排文件夹,还是仍然执行某种搜索?

0 投票
2 回答
4398 浏览

.net - .NET PInvoke 可以从用户指定的目录动态加载本机 dll 吗?

我有一个 .NET 应用程序,需要加载一个本地库,其位置由用户指定。PInvoke 看起来只会从全局搜索路径(或编译时指定的路径?)加载。最好的方法是创建一个在运行时调用 LoadLibrary 的 C++/CLI 程序集吗?

C++/CLI 会比 C# PInvoking LoadLibrary 更简单吗?

0 投票
2 回答
10629 浏览

c# - DllImport vs LoadLibrary,最好的方法是什么?

我通常在 c#.NET 中使用 Win32 API。但不要在一个应用程序中声明所有内容。有时通常使用 user32,有时使用 gdi32 ...我认为当我声明所有 api 函数时,那些使用大量内存。在 .NET 中使用 API 的最佳方式是什么?

0 投票
3 回答
12192 浏览

c++ - 如何将 c++ dll 文件加载到 Matlab 中

我有一个 C++ dll 文件,它使用了许多需要加载到 matlab 中的其他 c++ 库(IPP、Opencv +++)。我怎样才能做到这一点?

我试过loadlibrary和mex。加载库不起作用。

mex 找到 linux 的东西(独立于平台的库)并尝试包含它们。那是行不通的。

有没有人有什么好主意?

0 投票
6 回答
4874 浏览

c++ - 在 DLL 构建期间包含特定文件时,LoadLibrary 失败

我的 C++ 应用程序的一个 DLL 中出现了非常奇怪的行为。它可以正常工作并加载,直到我在 DLL 的主文件中使用 #include 包含单个文件。然后我收到此错误消息:

从 D:/Targets/bin/MatrixWorkset.dll 加载组件 无法加载“D:/Targets/bin/MatrixWorkset.dll”:无法加载库 MatrixWorkset:对内存位置的访问无效。

现在我已经搜索并搜索了代码和谷歌,我无法弄清楚发生了什么。到目前为止,一切都在一个 DLL 中,我决定将它分成两个较小的。导致问题的文件是另一个第二个库的一部分(加载正常)。

任何想法都将不胜感激。谢谢, 雅科

0 投票
2 回答
5214 浏览

c++ - 通过 LoadLibrary 从普通 C++ 程序加载托管 C++ DLL

我试图在托管 C++ 和普通 C++ 工作之间得到一个简单的混合。我正在使用 Visual Studio 2005,但一直遇到问题。这是我的设置。

首先,我有一个从代码构建的简单 DLL

我在命令行上将其编译为 DLL,使用

接下来,我有一个简单的程序,仅包含以下内容

我使用它构建了一个应用程序

所以我最终在dllcode.dllloader.exe一个目录中。尝试运行时loader.exe,我总是得到返回码“1”。查找产生的错误代码GetLastError()显示加载dllcode.dll失败是由于The specified module could not be found.

有人知道为什么会这样吗?它是否与需要嵌入的清单有关dllcode.dll?我在 dllcode.dll 上运行了依赖程序,但据我所知,它没有产生任何问题。

0 投票
4 回答
3994 浏览

.net - 从托管代码挂钩 LoadLibrary 调用

我们想挂接对 LoadLibrary 的调用,以下载未找到的程序集。我们有一个处理托管程序集的 ResolveAssembly 处理程序,但我们还需要处理非托管程序集。

我们试图通过“Microsoft Windows 编程应用程序”中指定的技术重写导入表来挂钩 LoadLibrary 调用,但是当我们调用 WriteProcessMemory() 时,我们得到一个权限被拒绝错误 (998)。(是的,我们正在使用提升的权限运行)

有没有人在加载 CLR 时成功地重写了导入表?谁能指出我正确的方向?

更新:我们解决了权限被拒绝的问题,但现在当我们迭代混合程序集(托管 + 非托管)的导入表时,我们找到的唯一条目是 mscoree.dll。有谁知道如何找到本地进口?(我们在 C++/CLI 中工作)。

0 投票
3 回答
18277 浏览

c++ - LoadLibrary 失败:第一次机会异常 0xC0000139(未找到 DLL) - 如何调试?

我有一个 dll “mytest.dll”,当通过 加载时LoadLibrary(),返回 NULL(和 127 作为GetLastError())。如果我在“mytest.dll”上使用 DependencyWalker,它会报告它应该正确加载并且正确找到所有 DLL。在主机 exe 上运行 DependencyWalker 的探查器选项会在日志中为我提供以下相关部分:

有没有办法调试它以找出 NTDLL.DLL 报告的 DLL Not Found 消息试图寻找什么?还是我应该在别处寻找问题的根源?

请注意,从另一个应用程序加载相同的“mytest.DLL”似乎可以正常工作。

0 投票
1 回答
712 浏览

perl - 为什么 shl_load() 对于具有线程本地存储的库会失败?

Perl 中的线程默认使用自己的本地存储来存储所有变量,以尽量减少线程对现有非线程感知代码的影响。在 Perl 中,可以使用属性创建线程共享变量:

HP-UX 运行时加载程序不支持动态加载包含 (TLS) 线程本地存储的共享库。
因此,当尝试导入包含 TLS 的模块时,会报告以下错误:

所以我知道为什么我会收到一个错误我只是不清楚为什么很难用 TLS 加载一个库?

0 投票
6 回答
10337 浏览

visual-c++ - 什么可能会阻止 DLL 使用 LoadLibrary 加载?

我有一个 JD Edwards 业务功能,它是用 Microsoft Visual C++ 作为 C 模块编写的。我正在使用 LoadLibrary 访问第三方 DLL。在独立的测试程序中,代码运行得很好。当我从 JDE 中运行它时,LoadLibrary 返回 NULL,GetLastError 返回 126,这意味着The specified module could not be found根据 MSDN。我已经尝试输入 DLL 的完整路径,是的,我记得将路径中的 \ 字符加倍。没有不同。

我已经检查以确保没有任何依赖项会阻止 DLL 加载;DUMPBIN /DEPENDENTS 返回以下内容:

这些看起来像标准的 Windows DLL,所以我很茫然。