0

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

为什么这必须发生?

4

2 回答 2

3

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

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

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

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

于 2010-04-13T10:35:45.283 回答
0

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

于 2010-04-13T10:38:20.433 回答