在我的项目中使用.dlls

时间:2011-10-10 00:20:23

标签: c++ visual-studio-2010

您好,
                                                                                         规格:VS 2010 C ++专业版。

我有一个项目,其中包含一些我想测试的统计函数。 所以我写了一个简单的测试控制台应用程序,我在项目的解决方案中添加了我想要测试的函数。 这是我项目的详细布局:

项目 BASE ,包含具有在我的统计应用程序中使用的名为 ROC 的函数的类。然后有 roc_test 这个简单的控制台应用程序,我想用它来测试 ROC 应用程序中的一些功能。现在, ROC 链接到 BASE roc_test ROC 链接为引用项目。我的问题是,当我尝试编译我的测试项目 roc_test 时,编译器会抛出一个错误,指出我的 roc_test 项目缺少属于项目的.dll文件 BASE 即可。 roc_test 但是,它与 BASE 没有直接关联。我不明白为什么它抛出这样的信息以及我如何解决它。为了清楚起见,让我试着以不同的方式展示这种关系。

roc_test 函数调用rocfit(..)函数,它是 ROC.h 的一部分。 ROC.h 使用以 DoubleMatrix.h 编写的函数,该函数是 BASE 项目的一部分。 我希望我很清楚。 附:显示代码没有意义,因为问题不在代码中,而是在链接器设置中。 谢谢你的帮助。

编辑:我的问题是如何摆脱错误?我还需要将我的测试项目链接到 BASE 吗?我必须这样做是没有意义的。它应该足以将其链接到 ROC 。我是对的吗?

1 个答案:

答案 0 :(得分:1)

如果它不包含在与控制台应用程序相同的目录中(或在路径中),那么您将需要包含BASE,因为运行时无法通过ROC解析BASE的依赖性。

编辑:仅仅参考ROC是不够的;虽然可能有一些构建选项可以构建ROC和BASE,然后将它们链接到一个DLL中;这可能值得调查。

此外,与使用控制台应用程序不同,从长远来看,您可能会发现使用单元测试更好。 这篇msdn文章解释了如何在C ++中使用vs2010测试项目:

http://msdn.microsoft.com/en-us/library/ms243171.aspx