【问题标题】:Natvis for a type that may be compiled into dll or lib可以编译成 dll 或 lib 的类型的 Natvis
【发布时间】:2018-05-12 23:26:58
【问题描述】:

我在 Visual Studio 中有一个解决方案,其中一个配置允许每个项目静态链接到主 exe,另一个配置将每个项目编译为自己的 dll。

我的想法是我可以使用 DLL 进行开发,最大限度地减少编译和链接期间的停机时间,但是当我向公众发布时,只有一个 exe。

不幸的是,这意味着在其中一个项目中创建的类型似乎需要 2 个 natvis 文件,以便可以在任一配置中进行调试。

除了 myProject.dll 之外,这 2 个 natvis 文件是相同的!应用于 dll 配置的 natvis 中的所有命名空间的前缀。 (运行静态链接的 exe 时,包含对 dll 中类型的引用的 natvis 失败,导致整个文件被忽略,而不仅仅是该类型)

这种情况的最佳解决方案是为每种类型维护 2 个 natvis 文件吗?是否可以从模板生成 natvis?是否可以对 dll 的引用设为可选?

(我使用的是 Visual Studio 2015,但如果 2017+ 有解决方案,请告诉我)

谢谢

【问题讨论】:

    标签: c++ visual-studio dll visual-studio-2015 natvis


    【解决方案1】:

    我正在使用 Microsoft Visual Studio Community 2017 版本 15.6.2,它适用于我使用单个 .natvis 类型 decl。我在一个共享项目中有我的 .natvis 和头文件,我的共享项目的实现 .dll 项目和我的应用程序的 .exe 项目都引用了它。我只是指定了没有 Shared.dll 的简单类型名称!前缀,它的工作原理。我希望这有帮助。 =)

    【讨论】:

    • 啊,所以这可能是微软在发布 2015 后对 Visual Studio 所做的错误或改进
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多