binary-compatibility相关内容

添加枚举值是否破坏二进制兼容性?

想象一下这个DLL中的枚举。 公共枚举颜色 { 红色, 绿色 } 添加枚举值是否破坏二进制兼容性?如果我要更改它,现有的EXE是否会中断? 公共枚举颜色 { 红色, 绿色, 蓝色 } 我看到了此答案,但它似乎解决了插入值的情况。如果我仅将值添加到仅结束,可以吗? 解决方案 否,这不可以吗? t破坏二进制兼容性(最大程度:程序集仍将加载 ..
发布时间:2020-10-30 03:16:37 C#/.NET

关于“二进制兼容性”的问题被称为“二进制兼容性”。

当我阅读Java语言规范(JLS8)> 二进制兼容性,其中一项不会破坏二进制兼容性的更改是: 更改方法或构造函数返回先前输入 抛出异常的输入,这些异常通常不会发生或由于 进入无限循环或导致死锁而失败或失败 我不明白这个主意。 请帮助澄清并举例说明。 解决方案 更改方法或构造函数以返回其先前曾为 抛出异常的输入值 现有代码: public int s ..
发布时间:2020-10-06 20:17:52 Java开发

Scala向后兼容性

哪些更改或代码演变破坏了向后兼容性(主要是二进制兼容性)?是否在任何地方都已完全指定? 我检查了 Scala语言规范,但没有看到关于此问题的任何部分,例如 Java语言规范章节。 13二进制兼容性。 解决方案 根据邮件列表,该规范文档详细介绍了向后兼容性问题尚不存在,但仍在开发中。 有关二进制兼容性(主要是scala库)的当前状态和要求,请参见马丁的邮件发送到scala用户邮件 ..
发布时间:2020-10-06 20:12:07 其他开发

为什么公共字段和属性可互换地与二进制兼容?

在日常工作中,我使用一个VB6(我知道,但不模拟受困扰的...)应用程序,该应用程序使用了我们已经编写的许多库(同样在不起眼的VB6中)。其中一个支持库中有一个通过公共属性公开的私有成员负载,我被要求删除这些属性,并将私有成员变量提升为与原始属性同名的公共字段。 现在,我不是COM专家,但给我的印象是,类中的每个公开项目都具有自己的GUID。因为我们将要从每个值都从2个Guid(属性获取和P ..
发布时间:2020-10-05 21:09:58 其他开发

在非Windows世界中的COM?

希望这个问题不会太含糊。通读COM规范和Don Box的Essential COM书籍,有很多关于“ COM解决的问题”的讨论-它们都听起来很重要,相关且当前。 因此,COM地址在其他系统(Linux,Unix,OSX,Android)上如何处理)?我在想类似的东西: 编译器和编译器版本之间的二进制兼容性 二进制组件重复使用 编译应用程序,使其具有运行时依赖关系,而不是加载时依赖关 ..
发布时间:2020-10-05 21:06:24 C/C++开发

添加属性后,如何保留.NET程序集的COM二进制兼容性?

我们已经开发了一个.NET程序集,用于存储语言翻译信息,并且需要由VB6应用程序使用。 我们希望能够更改无需重新编译应用程序即可翻译信息。 翻译由名为LanguageServices的两个文件的部分类提供。 一个文件是不变的库方法,另一个文件是从resx文件自动生成的所有属性,而regx是从语言翻译信息数据库生成的。 所有这些都是由于需要有一个中央翻译数据库,而该数据库可以 ..
发布时间:2020-10-05 21:01:23 C#/.NET

二进制兼容性与向后兼容性

我一直在阅读有关Qt d指针的一些详细信息,并遇到了二进制兼容性术语.这和向后兼容一样吗? 解决方案 共享库的向后兼容性包括: 二进制兼容性 来源兼容性 行为兼容性 所以,答案是否定的.二进制兼容性只是向后兼容性的一部分. 有关更多信息,请参见“兼容性类型:源,二进制和行为" 信息. ..

将Scala 2.12与Spark 2.x结合使用

在Spark 2.1 文档中,提到 Spark可在Java 7 +,Python 2.6 +/3.4 +和R 3.1+上运行.对于Scala API,Spark 2.1.0使用Scala 2.11.您将需要使用兼容的Scala版本(2.11.x). 在Scala 2.12 发布新闻中,还提到: 尽管Scala 2.11和2.12在很大程度上与源代码兼容,以促进交叉构建,但它们与二 ..
发布时间:2020-09-04 00:48:54 其他开发

VS2017和VS2015应用程序与dll之间的官方二进制不兼容性准确吗?

TL; DR -MS文档指出,VS2015和VS2017库之间的二进制兼容性是单向的,而我认为它必然是双向的.渔获物在哪里? 首先,对于背景: 任何MSVC ++构建的库都是具体地说,您可以将VS2015 C ++应用程序与2017年之后的MSVCRT140版本一起使用.( 官方文档网站指出了一个令人困惑的限制. 背景/相关问题: Visual-C ++-2017二进制与V ..

Visual Studio版本之间的库ABI兼容性

我有两种情况.假设我有3个共享库,它们导出C ++符号,每个共享库都用VS7.1,VS8和VS9构建.我在VS9中全部编译了3个.由于某种原因,这行得通.我不需要为VS9链接器重新编译VS9中的前2个库即可成功找到符号并针对它们进行链接. 现在,如果我有一个仅使用C语法导出符号的库(外部"C"),是否一样?我听说有人说ABI for C是标准化的,因此可以保证在所有版本的Visual Stu ..
发布时间:2020-07-27 00:32:58 C/C++开发

VS2017和VS2015之间的二进制兼容性

此SO帖子: Visual-C ++-2017二进制文件是否与VC ++-2015兼容?明确表示VS 2017与VS 2015具有二进制兼容性.甚至看起来像官方位置. 我的问题是,过去我清楚地记得每次尝试在使用以下命令编译的静态库中进行链接时都遇到链接器错误(我不记得具体的错误集).将MSVC的另一个版本转换为使用新版本的MSVC构建的EXE. 但是,二进制(in)兼容性听起来像是在运 ..

为什么要二进制兼容?

我正在学习PIMPL习语.它的优点之一是二进制兼容性.我想知道二进制兼容性的优点是什么.谢谢! 解决方案 它避免了脆弱的二进制接口问题.它是这样的: 程序使用库. 用户升级库.升级会更改库的二进制接口中的某些内容. 程序直到重新编译后才起作用,因为它是基于旧的二进制接口构建的. PIMPL习惯用法的优点之一是,它使您可以将通常是类的公共接口一部分的内容移动到其私有接 ..
发布时间:2020-07-03 19:01:04 C/C++开发

JDK是“向上"吗?或“向后"兼容的?

向后二进制兼容性(或向下兼容性)-使用旧版本库API构建的客户端可以在新版本上运行( 向上二进制兼容性(或向前兼容性)-使用新版本的库API构建的客户端可以在旧版本上运行的功能( Sun的有关JDK的一般文档自1.4.2版以来在J2SE 5.0中不兼容(以及 Java SE 6与J2SE 5.0的兼容性)描述JDK的兼容性如下: JDK 5.0与Java 2 SDK v1.4.2 向上二进制 ..

Linux发行版二进制兼容性

有什么方法可以在Linux发行版中制作二进制文件并在具有相同体系结构的另一个发行版上运行它?还是我应该编译并将其构建在不同的发行版上? 基于Redhat,Debian的二进制文件发行版之间是否存在兼容性? (我想在fedora上使用我的Ubuntu二进制文件!) 解决方案 输入 Linux Standard Base 以减少各个Linux发行版之间的差异. 见 http://w ..
发布时间:2020-05-01 10:42:43 服务器开发

ABI兼容性标头/库交叉检查

我一直在寻找ABI交叉检查工具.现在,我已经满足了其他问题中建议的一些工具,例如以下问题: 如何自动测试二进制兼容性? 用于检测C ++中ABI中断的静态分析工具 现在,这并不是我要尝试做的-因为这些跟踪版本之间的ABI更改. 我想知道给定的项目源文件+库头文件和库.so文件以及编译器版本(用于编译库和项目)是否可以交叉检查输出的ABI匹配已编译的库? 因此,适用的情 ..
发布时间:2020-04-23 10:39:06 服务器开发

Java中的重构方法和二进制兼容性

在重构方法时,很容易在Java中引入二进制不可编码(使用以前版本的代码)。 考虑更改方法以将其参数的类型扩展为父接口: void doSomething(String x); //将其更改为 void doSomething(CharSequence c); 使用此方法的所有代码将继续编译而不进行更改,但它确实需要重新编译编译(因为旧的二进制文件将因M ..
发布时间:2019-01-02 13:59:44 Java开发

改造void方法以返回其参数以促进流畅性:打破变化?

“API设计就像性:做出一个错误并在余生中支持它” ( Josh Bloch在推特上) Java库中存在许多设计错误。 Stack extends Vector (讨论),我们无法在不造成破损的情况下解决这个问题。我们可以尝试弃用 Integer.getInteger (讨论),但它可能会永远存在。 尽管如此,某些类型的改装可以在不造成破损的情况下完成。 有效的Java第2版,第 ..
发布时间:2018-12-25 21:48:28 Java开发

如何静态地在JAR中识别缺失的方法(二进制兼容性)

我想验证2个JAR之间的二进制兼容性。 按照回答我使用 jboss tattletale 但它只能找到缺少类。 如何找到丢失的方法?是否有可能? 例如 “取决于”课程 Foo取决于Bar(和许多其他中产阶级员工一样) import org.overlyusedclassnames.Bar 公共类Foo { public void someMethod(){ ..
发布时间:2018-11-19 13:09:52 Java开发