微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法为 c++ dll 运行 x64 c++ Visual Studio 测试但 x86 可以

如何解决无法为 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++ 单元测试项目的小型玩具解决方案重现了相同的行为:只要我包含了 any c++ dll 项目,构建后,测试资源管理器扫描测试并且没有看到我的 c++ 单元测试
  • 在另一个玩具解决方案中,我编写了一个 c++ dummy-dll 项目,其静态函数总和为 c++,该函数通过我包含在 {{1} 源代码中的标头公开} 单元测试项目,构建完成后,测试资源管理器会看到测试。

因此问题肯定来自 int dll 项目。修改c++ dll 项目的所有有意义的属性在这里列出所有内容毫无意义),以便我我想我真的错过了关于这个 c++ dll 的一些明显的东西。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。