我的项目最初设置为二进制兼容性,但它没有构建。所以我首先将它设置为No Compatibility,它以这种方式构建得很好。然后我将它设置回二进制兼容性,并覆盖以前生成的文件,它工作正常。
为什么会发生这种情况?
答案 0 :(得分:3)
我猜测你正在使用的二进制兼容位置是可执行文件而不是存储的bincompat版本。
通过更改代码中任何公开的com接口,二进制兼容性将被破坏(您可以放弃扩展接口,但不能更改现有的接口/类型),这会阻止构建。
通过将其设置为不具有兼容性的构建,将丢弃检查并构建可执行文件。
然后你把它改回二进制,这就是我认为你将二进制compat版本指向内置的exe本身而不是一个单独的副本的地方/原因 - 所以可执行文件自动与自身兼容并允许它构建。
答案 1 :(得分:0)
我认为VB6中有一个错误,它可以打开对dll / exe的引用而不释放它,所以当你使用二进制兼容性时,所以有时它可以帮助关闭VB6,重新打开它并构建