无法加载具有外部依赖项的库问题

时间:2015-07-22 07:14:43

标签: c++ dll visual-studio-2013

我在VS 2013中创建了一个C ++ * .dll。这在我的开发机器上运行正常,但是在客户机上运行时会出错。

enter image description here

这是cpp文件。

#include "stdafx.h"
#include "EasyDLL.h"

using namespace System;

double WINEXPORT EASYDLL_GetServerDateTime(int clientServerTimeDiff)
{
    System::DateTime clientDateTime = System::DateTime::Now;
    System::TimeSpan duration( 0, 0, clientServerTimeDiff );
    System::DateTime serverDateTime = clientDateTime.Add( duration );

    String^ strTemp = serverDateTime.ToString("yyyyMMddHHmmss");

    double result = double::Parse(strTemp);

    return result;
}

我相信原因是,客户端机器上不存在外部依赖关系。

我对C ++没有多少经验。

提出问题:
当你编译时(我现在只是在调试中编译),外部依赖项中有一大堆头文件和一个dll(mscorlib.dll)。

mscorlib.dll存在于客户端计算机上的相同位置,因此我将其作为问题进行折扣,但标题不存在。

问题:
我是否需要使用我创建的DLL发送这些标题,还是应该将它们编译到我的dll中?

以下是一些外部依赖项的屏幕截图。项目创建时,大多数情况下默认情况下都在项目中 enter image description here

修改

将项目更改为发布后,它似乎在另一台机器以及我的开发机器上运行,必须等到明天才能在客户机上进行测试。

虽然它到目前为止已经有效,但我查看了DependencyWalker并在查看我的dll时得到以下内容,这有什么值得担心的吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

您不需要使用DLL发送标头。如果Mats回答并未解决,您可能想尝试使用此工具:http://www.dependencywalker.com/ 你可以在里面看看"这样的DLL。根据我的经验,最好在两台机器上运行它,即在开发机器和客户端机器上,因为在客户端机器上看起来像是错误,也可能存在于开发机器上,因此将其作为问题折扣。 祝你好运!