问题标签 [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 投票
2 回答
682 浏览

c++ - 附加到进程时,Visual Studio 2005 锁定

我有一个简单的 C++ DLL,它为 WiX 安装程序实现了一些自定义操作。

调试自定义动作通常很简单:在动作开始时放置一个临时对话框,并在对话框出现时附加到进程。

但是今天,每当我附加到该进程时,屏幕底部都会出现“Microsoft Visual Studio is Busy”气泡。我无法弄清楚这是从哪里来的。有任何想法吗?

0 投票
4 回答
14539 浏览

.net - 将配置信息放入 DLL

在我的项目中,我的功能被用作 Web 应用程序和控制台应用程序(从任务调度程序启动)。为此,我将公共代码放入 Web 应用程序和控制台应用程序都在使用的 DLL 中。这工作正常。

但是,控制台和 Web 应用程序现在有一个几乎相同的 App.config 和 Web.config。是否可以将此配置也放入 DLL 并使其对两个应用程序都可用?

0 投票
3 回答
323 浏览

c++ - 静态数组常量是否会影响共享库布局?

考虑以下两种 C++ 标头案例:

情况1:

案例二:

后一种情况下的 const 仅用于自我强加的编译时检查,还是会影响 Mac/Linux/Windows 上的共享库布局?

更新:根据答案,编译器可能会将 const 内容放在只读页面上。Windows 上的 Visual C++ 或 Mac 或 Linux 上的 GCC是否实际上将 const 数据放在只读页面上?也许我测试了错误的方式,但在英特尔的 Mac 上,const 版本的元素似乎是可写的。

0 投票
2 回答
3801 浏览

.net - 了解 dll 以及它们在 Visual Studio 中的工作方式

有没有人有关于 dll 的良好资源以及它们是如何在 Visual Studio 中使用/生成的?我比较模糊的几个问题具体是:

  • 刷新文件的工作原理
  • dll版本号是如何生成的
  • 按项目添加引用与浏览特定dll之间的区别

也欢迎任何其他提示。

0 投票
2 回答
5911 浏览

c++ - VC9 和 VC8 库兼容性

(最初的问题是在那里提出的:http ://www.ogre3d.org/phpBB2/viewtopic.php?t=44832 )

有人问:“虽然我想在 vs2008 (VC9) 中构建所有内容,但 PhysX SDK 是使用 vs2005 (VC8) 构建的。使用所有 vc9 编译的库并与此 vc8 库结合使用会导致任何问题吗?”

我回答说,在我尝试使用 VC8 生成的 .lib 文件(和 .dll)并将其包含在 vc9 编译的 exe 中的前一天,编译器无法打开 .lib 文件。

现在,其他人回答说他们这样做没有问题......

我找不到有关 vc9 和 vc8 之间的 lib 兼容性的信息。

所以……救命?

0 投票
4 回答
78514 浏览

dll - WinXP下如何修复DWMAPI.DLL延迟加载依赖?

我在 WinXP 下构建了一个 .dll,声称它在加载时找不到 DWMAPI.DLL。问题是这个 DLL 是一个 Vista DLL,对于安装了 IE7 的 XP 用户来说,这是一个已知问题。建议卸载 IE7 或通过添加/删除程序修复 .NET Framework。我做了修复,没有任何改变。我不打算卸载 IE7,因为必须有一个更好的解决方案,它不等同于“重新安装 Windows”。

我读过关于试图卸载 IE7 的人的坏消息,所以我不愿意走那条路。

我在 Visual Studio 2003 (7.1) 下使用 C++。我没有看到可能在应用程序启动时强制延迟加载的选项。我只是在创建 DLL 项目时使用了默认设置。我刚才确实找到了一个有趣的选项,Linker->Input->Delay Loaded DLLs,所以我把 DWMAPI.DLL 放在那里强制它被延迟加载。但是,我在链接时得到了这个:

.. 尝试加载我的 DLL 时,它当然没有改变任何事情。为了它,我添加了导致 DWMAPI.DLL 的整个 DLL 树,我得到了相同的消息。(为了记录,它是foundation.dll->shell32.dll->shdocvw.dll->mshtml.dll->ieframe.dll->dwmapi.dll。)

为了更具体地了解我在做什么,我正在编写一个 Maya 插件并在脚本编辑器中获取总是有用的文本:

我最初使用 Dependency Walker 来追踪问题,这就是我找到 DWMAPI.DLL 的原因。这些是取决于给我的消息,而 DWMAPI.DLL 是唯一旁边有一个黄色问号的东西:

杰拉德是对的。事实上,Maya 使用的 PATH 与 Dependency Walker 不同。我的插件加载了另一个 DLL(用于图像处理),它位于 Maya 插件目录中,并且依赖于没有问题地找到它,但 Maya 没有。我必须在 Maya.env 的 PATH 中添加“;plug-ins”。

鉴于这个问题毕竟与 DWMAPI.DLL 无关,但 DWMAPI 是一个常见问题,我将在 Novell 的网站上发布我找到的关于 DWMAPI 问题的最佳链接。基本上大多数程序在depends.exe中都会有这个警告,但是如果旁边有延迟加载图标,并且你确定程序不会直接或间接调用DWMAPI,那就没问题了。问题在别处。如果延迟加载图标不存在,那么您必须查看 Visual Studio 中的 /DELAY 和 /DELAYLOAD 选项。依赖的事实给了我一个“警告”而不是“错误”,这是 DWMAPI 没有被自动加载这一事实的线索。

0 投票
1 回答
1983 浏览

visual-c++ - 转换为 Windows 库的 MinGW 库在 VC++6 中给出了奇怪的链接

我使用了 MinGW.a到 Windows的.lib转换过程,详见 gmp-discuss 列表中的一个线程,如下所示(针对使用 --disable-shared --enable-static 创建的库。)

我现在有一个.lib文件,VC++6 似乎可以毫无困难地链接它。我现在担心的是我从链接阶段收到的警告消息:

在程序的这一点上,这些对我的 DLL(包装了某些 GMP 功能)的运行没有任何影响。但这足够好吗?将这三个符号从libgmp.a链接到我的 Windows DLL 最终会咬我吗?

0 投票
4 回答
37719 浏览

visual-c++ - 不使用 VCRedist_x86.exe 的 Visual C++ Redistributables

我在一个受到严格限制的环境中开发,但开发人员也有严格的控制。

VCRedist_x86.exe - 一个 4Mb 的可再发行文件 - 不好玩(传输四个小时)。我真的更喜欢只重新分发 MFC90.dll、msvcm90.dll、msvcp90.dll 和 msvcr90.dll - 这更像是 2Mb。但是,重新分发 Visual C++ 文件说:

不支持重新分发在没有清单的情况下构建的 C/C++ 应用程序。如果没有将应用程序绑定到这些库的清单,C/C++ 应用程序就不能使用 Visual C++ 库。有关详细信息,请参阅选择部署方法

我最初将 DLL 复制到程序工作目录的计划似乎在这个勇敢的清单新世界中行不通。

我的下一个猜测是将文件填充到 WinSxS 目录所需的注册表项并自己填充(而不是使用 4 meg 程序)。

[编辑] 该软件经常更新,因此 DLL 比静态链接更受欢迎。[/编辑]

我怎样才能成功地分发必要的文件,同时降低开销?

0 投票
4 回答
965 浏览

.net - 如何确定 .Net DLL 是否用于 GUI 应用程序或 Web 服务?

如何在 .Net DLL 中确定它是在 Windows GUI 应用程序还是 Web 服务中运行?我有一个在两个应用程序之间共享的低级类,并且需要在 Web 服务中使用它时禁用消息框。

Windows 应用程序有 200 多个解决方案,我无法重构现有代码。Web 服务需要重用一些功能,我正在寻找快速修复。

0 投票
3 回答
5261 浏览

python - py2exe 包括 .exe 中的 MSVC DLL

当使用 py2exe 通过 wxPython 分发 Python 应用程序时,通常需要一些 MSVC DLL 来使 .exe 在新安装的机器上工作。特别是,两个最常见的 DLL 是 msvcp71.dll 和 msvcr71.dll

前者可以使用此技巧包含在 .exe 中。但是,后者只是由 py2exe 放在dist目录中,而不是放在可执行文件中,即使我特别要求包含它。

知道如何使 py2exe 将两者都包含在 .exe 中吗?