visual-c++ - 如何在 VC++ 中的另一个测试项目中使用来自一个测试项目的类?

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

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

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

我有:

  • 测试项目 1
  • TestProject2:我需要在这里使用 TestProject1 中的类。

我尝试添加 TestProject1 作为 TestProject2 的引用:

Right Clikc on the TestProject1-> Properties -> Common Properties -> Framework and References -> Add New Reference -> Selected TestProject2

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

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

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


更新:我是如何解决的

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

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

最佳答案

它不像在 C# 中那么容易。

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

enter image description here

enter image description here

enter image description here

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

现在你可以写#include <theheaderfile.h>在主应用程序中的 cpp 文件中引用导出的功能。

以下是 msdn 中可能有帮助的其他几个位置:import/export , static libraries , hpp vs h

关于visual-c++ - 如何在 VC++ 中的另一个测试项目中使用来自一个测试项目的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981473/

相关文章:

c++ - <atomic> 的 CMPXCHG16B 和 MSVC 实现不是默认的?

c++ - 不完整类型不允许错误

amazon-web-services - 在 Docker 中访问文件时出现权限被拒绝错误

ruby-on-rails - Thinking Sphinx 在测试模式下不工作

mysql - VB.net MYSQL - 计算数据库中两次之间的秒数

c - 如何允许 `else-if` 之间的标签?

c++什么进程正在监听windows中的某个端口

laravel - 如何使用 Sentinel 执行 actingAs()

c++ - 我输出中的 D3D11 INFO 行是什么意思?

c++ - 我的函数的顺序重要吗?