0

我在 VC++ 2008 中创建了一个 Dll。但它正在与其他一些软件 (VB) 一起使用。无法在 Labview 中加载该 dll 函数。VC90 Debug CRT 错误来了。为什么这个软件不支持我的dll?

4

4 回答 4

0

您是否使用调试目标编译了您的 DLL?如果是这样,它将无法在未安装 Visual Studio 的系统上运行。您必须发布以发布模式编译的 dll。

于 2009-04-21T21:23:18.313 回答
0

您是否链接到动态 crt 并且无法确保它存在于目标计算机上?尝试静态版本(使用/MT 而不是 /MD)。

于 2009-03-24T08:15:59.877 回答
0

你可以使用depends.exe (dependency walker) 找出一些原因。在您的情况下,您将在依赖walker 中选择labview.exe 并在依赖walker 中选择profile。

加载 dll 后,您可能会看到一些未加载的原因。

这个实际的链接将引导你到包括 profile 方法的依赖walker。 http://www.dependencywalker.com/

于 2009-06-04T21:02:59.843 回答
0

分发调试 CRT 并不是一个好主意,尤其是使用 VC++ 2008 编译的二进制文件/DLL。您的 DLL 需要同一目录中的 Debug-CRT-Dlls 的清单文件。

对于 VC 2008 SP1,情况更糟:您需要将清单文件修补到旧版本或在 stdafx.h 中使用 _BIND_TO_CURRENT_VCLIBS=1 以使 DLL 运行。

更多信息在:应用程序不与 VS 2008 SP1 DLL 一起运行,以前的版本适用于 RTM 版本

于 2011-09-27T06:54:44.450 回答