我有一个解决方案来构建一个在其项目属性中启用了运行时类型信息的 DLL。这是 Visual Studio 2005 中的默认值 (/GR)。在我们的库中,我们有很多 dynamic_casts,所以我目前无法在没有运行时类型信息的情况下构建 DLL。
现在我的客户正在使用 Dassault Systèmes 的开发工具,该工具声明他们不能使用运行时类型信息。它始终被禁用 (/GR-)。
问题是这是否是一个问题?
我用一个小例子尝试了这种情况,在这个例子中,一个 DLL 是用一些代码进行动态转换创建的。DLL 是在启用 RTTI 的情况下构建的。一个小型应用程序使用 DLL,尤其是带有 dynamic_casts 的代码。此应用程序内置 RTTI禁用。它工作正常。但是由于不可预测的行为,任何事情都可能发生......
我想告诉我的客户,将 DLL 与其中一些使用 RTTI 和其他不使用 RTTI 混合不是问题,但我找不到有关它的详细信息(使用 Google、MSDN 等)。有谁知道这个问题的答案?