我在VC ++ 2008中创建了一个Dll。但它正在使用其他一些软件(VB)。无法在Labview中加载该dll函数。 VC90调试CRT错误即将到来。为什么这个软件不支持我的dll?
答案 0 :(得分:0)
您是否链接到动态crt并且无法确保它存在于目标计算机上?试试静态版本(使用/MT instead of /MD)。
答案 1 :(得分:0)
您是否使用调试目标编译DLL?如果是这样,它将无法在未安装Visual Studio的系统上运行。您必须发布以发布模式编译的dll。
答案 2 :(得分:0)
您可以使用depends.exe(依赖性walker)查找某些原因。 在您的情况下,您将在依赖性walker中选择labview.exe 并在依赖性walker中选择配置文件。
当你的dll加载时,你可能会看到一些没有加载它的原因。
此实际链接将引导您访问包含配置文件方法的依赖性walker。 http://www.dependencywalker.com/
答案 3 :(得分:0)
使用VC ++ 2008编译的二进制文件/ DLL分发调试CRT并不是一个好主意。您的DLL需要在同一目录中使用Debug-CRT-Dll的清单文件。
使用VC 2008 SP1更糟糕的是:您已将清单文件修补到旧版本,或者在stdafx.h中使用_BIND_TO_CURRENT_VCLIBS = 1来运行DLL。
更多信息:App does not run with VS 2008 SP1 DLLs, previous version works with RTM versions