binary-compatibility

How do I preserve COM binary compatibility for a .NET Assembly when properties are added?

≯℡__Kan透↙ 提交于 2019-12-19 07:49:07
问题 We have developed a .NET Assembly that stores language translation information and it needs to be consumed by a VB6 application. We would like to be able to change the translation information without having to recompile the application. The translation is provided by a two-file partial class called LanguageServices. One file is non-changing library methods, the other is all auto generated properties from a resx file and the regx is generated from a database of language translation information

Does adding enum values break binary compatibility?

纵然是瞬间 提交于 2019-12-18 19:04:14
问题 Imagine this enum in a DLL. public enum Colors { Red, Green } Does adding enum values break binary compatibility? If I were to change it, would existing EXEs break? public enum Colors { Red, Green, Blue } I saw this answer, but it seemed to address the case of inserting a value. If I add values to the end only , is that OK? 回答1: No, this doesn't break binary compatibility (in as much as: the assembly will still load etc), because enums are basically integer literal constants. Inserting values

How compatible are different versions of glibc?

孤人 提交于 2019-12-18 11:03:29
问题 Specifically: Is it assured somehow that all versions of glibc 2.x are binary compatible? If not, how can I run a binary (game) on my system which has been compiled for a different version? Can I install glibc in a different folder? My specific problem is the compatibility between glibc 2.14 (what I have) and 2.15 (what the game wants). I might also get a version for glibc 2.13 but I'm not sure if that will run on 2.14. 回答1: In general, running binaries that were compiled for an older glibc

What would I lose by abandoning the standard EventHandler pattern in .NET?

こ雲淡風輕ζ 提交于 2019-12-17 22:48:06
问题 There's a standard pattern for events in .NET - they use a delegate type that takes a plain object called sender and then the actual "payload" in a second parameter, which should be derived from EventArgs . The rationale for the second parameter being derived from EventArgs seems pretty clear (see the .NET Framework Standard Library Annotated Reference). It is intended to ensure binary compatibility between event sinks and sources as the software evolves. For every event, even if it only has

Tool for backwards compatibility for the C#/.NET API? [closed]

∥☆過路亽.° 提交于 2019-12-17 17:42:17
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed last year . I found this tool, http://sab39.netreach.com/Software/Japitools/JDK-Results/46/, which checks for backwards compatibility between different versions of APIs for Java using javadoc. Is there an tool equivalent to this one for C#/.NET? Here is an example of a comparison between JDK 1.5 and JDK 6 APIs using this tool

Tool for backwards compatibility for the C#/.NET API? [closed]

主宰稳场 提交于 2019-12-17 17:42:10
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed last year . I found this tool, http://sab39.netreach.com/Software/Japitools/JDK-Results/46/, which checks for backwards compatibility between different versions of APIs for Java using javadoc. Is there an tool equivalent to this one for C#/.NET? Here is an example of a comparison between JDK 1.5 and JDK 6 APIs using this tool

Is JDK “upward” or “backward” compatible?

烈酒焚心 提交于 2019-12-17 02:46:28
问题 Backward binary compatibility (or downward compatibility) - an ability of clients built with an old version of library API to run on a new one (wiki). Upward binary compatibility (or forward compatibility) - an ability of clients built with a new version of library API to run on old one (wiki). The general Sun's document about JDK Incompatibilities in J2SE 5.0 since 1.4.2 (and Java SE 6 compatibility with J2SE 5.0 too) describes the compatibility of JDK as following: JDK 5.0 is upwards binary

C++ exceptions binary compatibility

独自空忆成欢 提交于 2019-12-12 14:16:43
问题 my project uses 2 different C++ compilers, g++ and nvcc (cuda compiler). I have noticed exception thrown from nvcc object files are not caught in g++ object files. are C++ exceptions supposed to be binary compatible in the same machine? what can cause such behavior? try { kernel_= new cuda:: Kernel(); } catch (...) { kernel_= NULL; } // nvcc object cuda:: Kernel:: Kernel () { ... if (! impl_) throw; } everything else seems to work (C++ objects, operators). To be honest I do not know

Issue about “binary compatibility”

拟墨画扇 提交于 2019-12-11 00:16:07
问题 When I read Java Language Specification (JLS8) > Binary Compatibility, one of a set changes that doesn't break binary compatibility is: Changing methods or constructors to return values on inputs for which they previously either threw exceptions that normally should not occur or failed by going into an infinite loop or causing a deadlock I don't understand this idea. Please help clarify and give an example to demonstrate it. 回答1: Changing methods or constructors to return values on inputs for

Can I recompile a public API with a sub-interface and keep binary compatibility?

半城伤御伤魂 提交于 2019-12-10 18:14:45
问题 I have a public API, used several times across several projects: public interface Process<C extends ProcessExecutionContext> { Future<?> performAsync(C context); } And an abstract class that takes care of implementing the Future mechanism (not shown). I know that all projects subclass the corresponding abstract class (for which performAsync is final ) and no single class implements the abstract interface without subclassing the abstract implementor. This is by design and because this "public"