问题标签 [dll]

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 投票
8 回答
9469 浏览

windows - 在 Windows 上构建和部署 dll:SxS、清单和所有爵士乐

自 VS 2005 以来,我发现不可能简单地针对 MS 运行时构建一个 dll 并将它们部署在一起(http://www.ddj.com/windows/184406482)。我对 manifest、SxS 和 co 深感困惑:MSDN 文档真的很差,带有循环引用;特别是因为我更像是一个 Unix 人,我发现所有这些都没有信息。我的核心问题是将 dll 与 msvc9 或 msvc8 链接:由于这些运行时不可再分发,链接和部署此类 dll 的步骤是什么?特别是,清单是如何生成的(我不想要 mt.exe,我想要一些可以跨编译器移植的东西),它们是如何嵌入和使用的?并排组装是什么意思?

基本上,我在哪里可以找到任何类型的规范而不是 MS 行话?

感谢所有回答的人,这真的很有帮助,

0 投票
5 回答
28095 浏览

c++ - 从 DLL 动态导入 C++ 类

从 DLL 导入 C++ 类的正确方法是什么?我们正在使用 Visual C++。

有 dllexport/exports.def+LoadLibrary+GetProcAddress 三重奏,但它不适用于 C++ 类,仅适用于 C 函数。这是由于 C++ 名称修改造成的吗?我该如何进行这项工作?

0 投票
3 回答
14131 浏览

winapi - 如何获取我自己代码的模块句柄?

可能重复:
如何获取当前执行代码的 HMODULE?

我正在尝试在我自己的模块中查找资源。如果这个模块是一个可执行文件,那很简单——GetModuleHandle(NULL)返回“主”模块的句柄。

然而,我的模块是一个由另一个可执行文件加载的 DLL。所以GetModuleHandle(NULL)会将模块句柄返回给那个可执行文件,这显然不是我想要的。

有没有办法确定包含当前运行代码的模块的模块句柄?在调用中使用 DLL 的名称GetModuleHandle()对我来说似乎是一种 hack(如果有问题的代码被移植到不同的 DLL 中,则不容易维护)。

0 投票
2 回答
6955 浏览

dll - 如何从托管 DLL 获取可执行路径

我有一个托管 DLL(用 C++/CLI 编写),其中包含 C# 可执行文件使用的类。在类的构造函数中,我需要访问引用 DLL 的可执行文件的完整路径。在实际的应用程序中,我知道我可以使用 Application 对象来执行此操作,但如何从托管 DLL 执行此操作?

0 投票
9 回答
316312 浏览

windows - 什么是 DLL 文件,它们是如何工作的?

DLL 文件究竟是如何工作的?似乎有很多,但我不知道它们是什么或它们是如何工作的。

那么,与他们有什么关系呢?

0 投票
3 回答
3455 浏览

.net - 在 Visual Studio 中指定非 .NET 依赖项

我正在使用 P/Invoke 从我的项目中调用非 .NET dll,这意味着 .dll 必须始终存在于 .exe 的目录中。

有没有办法告诉Visual Studio这个依赖,这样编译时会自动将.dll复制到输出目录,并在setup中自动包含.dll?还是我必须手动执行此操作?

0 投票
3 回答
8809 浏览

vb.net - 将 COM 组件引用添加到 VB.NET 项目时出现问题

我有一个第三方 COM dll 正在尝试添加到 vb.net (2008 express) 项目中。我将 dll 放入 C:\WINDOWS\system32\ 并使用“regsvr32 vxncom.dll”注册它。当我转到项目 > 添加参考并转到 COM 选项卡时,它会显示在可用组件/库的列表中。但是,当我选择库并点击确定时,Visual Studio 会抱怨:“无法添加对‘vxncom 4.0 库’的引用。无法注册 ActiveX 类型库‘C:\WINDOWS\system32\vxncom.dll’。”

我正在做的项目是分发 dll 的人提供的一个示例。当我启动一个新的(空白)vb.net 项目时,该组件也无法添加。

更新 1:

我在有问题的 dll 上运行了dependency walker,这是我在错误日志中得到的内容:

错误:由于隐式依赖模块中缺少导出函数,至少一个模块具有未解析的导入。

有问题的模块似乎是 libeay32.dll,但它已经存在于 C:\WINDOWS\system32 中。

更新 2:

我去了openssl 站点并下载并使用他们的安装程序来更新 libeay32.dll。我在 vxncom.dll 上再次运行了dependency walker,没有错误。回到视觉工作室,它仍然不想添加参考。与之前完全相同的错误。

0 投票
5 回答
333 浏览

windows - 在 DLL 中使用 cpu 特定功能有哪些标准技术?

简短版本:我想知道在 DLL 中利用 CPU 特定指令是否可能,以及如何最好?

稍长的版本:当从微软下载(32 位)DLL 时,似乎一种尺寸适合所有处理器。

这是否意味着它们严格按照最低公分母(即操作系统支持的最低平台)构建?或者是否有一些技术用于在 DLL 中导出单个接口,但在幕后利用 CPU 特定代码来获得最佳性能?如果是这样,它是如何完成的?

0 投票
7 回答
5726 浏览

c - 在C中将控制台exe转换为dll

我有兴趣从另一个 Windows GUI 程序(自然用 Delphi 编写)调用开源控制台应用程序SoX 。我不想处理抓取和隐藏控制台窗口,我只想将应用程序转换为我可以从我的应用程序调用的 DLL。

在我开始走这条路之前,我很好奇我应该做多少工作?我们是在谈论一项重大事业,还是有直接的解决方案?我知道一些 C,但绝不是专家。

我不期待 SoX 的具体细节,一般只是将 EXE 控制台应用程序转换为 DLL。如果有人熟悉 SoX,那就更好了。

0 投票
6 回答
6042 浏览

c++ - 卸载 DLL 时的内存泄漏是否会导致主机进程泄漏?

考虑这种情况:

此时,调用 malloc() 时分配的 1k 是否会再次可供宿主进程使用?DLL 静态链接到 CRT。