gpt4 book ai didi

svn - Visual Basic 6 项目丢失对所有用户定义类型的引用并且无法编译

转载 作者:行者123 更新时间:2023-12-04 21:41:06 36 4
gpt4 key购买 nike

一天前,我使用 TortiseSVN 向 Subversion 提交了一些工作和编译添加,关闭了 Visual Basic 6.0 (SP6),今天当我打开项目时,IDE 不会编译项目。

我收到的错误是:编译错误:未定义用户定义类型 .

此外,当我尝试转到 的定义时任何输入,比如说微软通讯 字节 ,我收到消息:无法识别光标下的标识符 .

我使用 TortiseSVN 差异查看器看到的对 VBP 文件的唯一更改是添加了 类(class) 我添加的文件。

最佳答案

这些类型是否在同一个项目中?如果没有,请检查项目引用。它们是通过注册表项引用的,这些注册表项可能已在项目范围之外进行了更改。

您是在构建 dll 组件还是 ActiveX exe(与 Forms exe 相比)?如果是这样,请尝试取消注册以前的构建。

如果您在项目设置中启用了二进制兼容性,VB6 将寻找以前的版本来解析符号。也许您删除了以前的构建,或者它以某种方式损坏。禁用二进制兼容性并删除以前的构建,然后尝试重新编译。 (如果它是一个组件,请不要忘记取消注册,否则您的注册表中会堆满损坏的类键。)

[编辑] 说明:

通过检查项目引用,我指的是 IDE 中的菜单。该列表将说明它是否在注册表中找不到引用(如果它已被标记为已添加)。是的,这些是 vbp 中的那些,但是使用文本编辑器您并不能真正看到 GUID/版本是否仍然存在。如果引用的组件被更新/修补,它们可能会发生变化。

随着注册表变得乱七八糟,我的意思是,如果您在没有项目/二进制兼容性的情况下进行编译,那么 VB6 将为您的类生成新的 GUID。公共(public)类在注册表中标有 dll 的路径。 Normaly VB6 在覆盖之前取消注册一个 dll,但是如果你手动删除以前的构建,没有人会取消注册它,所以类信息保留在注册表中,引用一个不再存在的 dll。

关于svn - Visual Basic 6 项目丢失对所有用户定义类型的引用并且无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6601587/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com