【问题标题】:How to use classes from a Test project in another Test Project in VC++?如何在 VC++ 的另一个测试项目中使用来自测试项目的类?
【发布时间】:2014-01-25 17:12:00
【问题描述】:

我通常使用 C#。在 C# 中,我可以有一个层次结构,它们相互引用。

我正在尝试在 VC++ 中做同样的事情,但我不知道怎么做。总的来说,我对 C++ 没有太多经验。

我有:

  • TestProject1
  • TestProject2:我需要在这里使用 TestProject1 中的类。

我尝试添加 TestProject1 作为 TestProject2 的参考:

在TestProject1上右键Clikc->属性->通用属性->框架和引用->添加新引用->选中的TestProject2

但这会导致错误,因为 TestProject2 不是作为库构建的。

据我所知,只生成了一个 obj 文件列表。

在 TestProject1 中引用 TestProject2 以便我可以使用它的类的正确方法是什么?


更新:我是如何解决的

我按照 SOReader 说明解决了这些问题,但我以不同的方式添加了库:

  1. 首先我按照 SOReader 的指示更改了 TestProject1 项目类型(右键单击 TestProject1 项目 -> 属性 -> 配置属性 -> 常规 -> 将 配置类型 设置为 静态库 (lib)
  2. 在TestProject2中添加对TestProject1的引用->右键单击TestProject2项目->属性->通用属性->框架和引用->添加新引用->选择TestProject1

【问题讨论】:

    标签: visual-c++ testing visual-studio-2012


    【解决方案1】:

    这并不像在 C# 中那么容易。

    如果您只想将 TestProject1 构建为静态库,则必须将其包含到另一个项目中。在此之后,您转到相关项目属性并将lib 文件添加到链接器和标头文件夹以进行标头查找。

    假设 Dll 在其根文件夹中包含 .h 文件(实际上不应该有),您只需向 Additional Include Directories 添加一个条目以指向 Dll 根文件夹所在的位置。

    现在您只需在主应用程序的 cpp 文件中写入 #include <theheaderfile.h> 即可引用导出的功能。

    以下是 msdn 中可能有帮助的其他几个位置:import/exportstatic librarieshpp vs h

    【讨论】:

    • 那么,不能简单的使用生成Test Project时生成的obj文件吗?这很不方便,有没有一种简单的方法可以告诉测试项目构建为静态库?还是我需要创建一个新的静态库项目?
    • @Dzyann AFAIR 您只需更改项目属性中的输出类型,如第一个屏幕截图所示。
    • @Dzynn 在组件更新方面更方便的是使用 DLL,但在 C++ 中这样做真的很痛苦。导入/导出 ms-compiler 特定关键字在这里有帮助,但它仍然不像在 C# 或 Delphi 中那么好和容易
    • 对不起,在这个浏览器中,由于某种原因没有显示截图。现在我可以在手机中看到它们。谢谢!
    • 是的,很遗憾,我认为微软已经实现了与 C++ 类似的东西。也许在未来。
    猜你喜欢
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 2011-04-20
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多