如何解决无法为 c++ dll 运行 x64 c++ Visual Studio 测试但 x86 可以
我有一个巨大的 99% c#
视觉工作室解决方案,其中包含许多 c#
项目,并且只有一个 c++
项目在构建时生成一个 dll,该 dll 在构建后被复制到需要、包装和编组的 c#
dll 然后由解决方案中的许多其他 c#
项目使用。 c++
代码仅通过 c#
非常实用的测试进行测试,我想编写 c++
单元测试。
由于我们的构建环境,我必须使用 Visual Studio 单元测试框架及其测试资源管理器。因此,我在解决方案中添加了一个 c++
单元测试项目,添加了 dll c++
项目作为对它的引用,并将 dll c++
项目标头添加到了 {{1} 的包含目录中}} 单元测试项目。我还在 c++
dll 项目中添加了一个后期构建,以便在构建 dll 后复制单元测试项目的二进制文件(也是一个 dll)。
我还没有开始运行测试,而只是进行编译,但我已经遇到了问题。我在 c++
测试项目中只有一个源文件,构建没有任何错误或警告,但是在测试的源文件中:
- 如果我不包含
c++
dll 项目的任何标头,则在构建后,测试资源管理器会扫描测试并查看我的c++
单元测试 - 如果包含
c++
dll 项目的any 标头,则构建后,测试资源管理器会扫描测试并且不会看到我的c++
单元测试
我几乎尝试了所有方法。值得注意的是:
- 我用一个只包含
c++
dll 项目和c++
单元测试项目的小型玩具解决方案重现了相同的行为:只要我包含了 anyc++
dll 项目,构建后,测试资源管理器扫描测试并且没有看到我的c++
单元测试 - 在另一个玩具解决方案中,我编写了一个
c++
dummy-dll 项目,其静态函数总和为c++
,该函数通过我包含在 {{1} 源代码中的标头公开} 单元测试项目,构建完成后,测试资源管理器会看到测试。
因此问题肯定来自 int
dll 项目。我修改了 c++
dll 项目的所有有意义的属性(在这里列出所有内容毫无意义),以便我我想我真的错过了关于这个 c++
dll 的一些明显的东西。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。