为什么我必须将版本兼容性设置为二进制兼容性中的无兼容性,然后返回二进制兼容性以使其工作正常?

时间:2010-04-13 10:30:35

标签: vb6 binary-compatibility

我的项目最初设置为二进制兼容性,但它没有构建。所以我首先将它设置为No Compatibility,它以这种方式构建得很好。然后我将它设置回二进制兼容性,并覆盖以前生成的文件,它工作正常。

为什么会发生这种情况?

2 个答案:

答案 0 :(得分:3)

我猜测你正在使用的二进制兼容位置是可执行文件而不是存储的bincompat版本。

通过更改代码中任何公开的com接口,二进制兼容性将被破坏(您可以放弃扩展接口,但不能更改现有的接口/类型),这会阻止构建。

通过将其设置为不具有兼容性的构建,将丢弃检查并构建可执行文件。

然后你把它改回二进制,这就是我认为你将二进制compat版本指向内置的exe本身而不是一个单独的副本的地方/原因 - 所以可执行文件自动与自身兼容并允许它构建。

答案 1 :(得分:0)

我认为VB6中有一个错误,它可以打开对dll / exe的引用而不释放它,所以当你使用二进制兼容性时,所以有时它可以帮助关闭VB6,重新打开它并构建