【问题标题】:What causes Error 1309 after editing and saving a class library?编辑和保存类库后导致错误 1309 的原因是什么?
【发布时间】:2013-04-05 02:35:14
【问题描述】:

我在 Visual FoxPro(.vcx 文件)中有一个类库。在我编辑其中包含的代码,然后运行我的应用程序后,我收到错误 1309 '[class library name] is not an object file'。

这是在类被实例化之后发生的,并且发生在 .vcx 中的类调用自身内部的方法时。所以此时它确实是一个对象,因为导致错误的代码行包含在类库中。

我注意到,每当我编辑和保存 .vcx 时,如果我将 .vcx 作为表格打开,我可以看到有两个与生成错误的类有关的已删除行。如果我打包 .vcx 并运行程序,我不会收到任何错误。同样,如果我编译 CLASSLIB [类库名称],我不会收到错误。

【问题讨论】:

    标签: class class-library visual-foxpro


    【解决方案1】:

    VCX 是否可能已损坏?您可以尝试执行“另存为”并再次测试 VCX 吗?

    【讨论】:

    • 当我尝试访问 .vcx 本身和其中包含的任何类时,“另存为...”的菜单选项在 VFP 中显示为灰色。我也尝试过与其他 .vcx 相同的结果。
    • VCX 只是一个带有特殊扩展名的 DBC。您可以使用它,然后使用 COPY TO 进行复制。您可能必须更改复制文件的扩展名。
    • @Tamar 谢谢,我刚刚尝试以 .dbf 格式打开,然后复制到。编辑并保存后,运行应用程序,我得到相同的错误 1309。
    【解决方案2】:

    您可以尝试重新编译类库。类库既有代码列(作为原始文本),又有另一列中的 OBJECT COMPILED 代码。它可以很简单

    编译类(yourClassLibrary)

    这将为您重建类库中所有记录的 objcode 列。

    如果文件的 .vct(.fpt 备忘录部分)损坏,那么您将很难恢复。

    【讨论】:

    • 不幸的是,我目前的解决方法是每次编辑和保存时都编译 CLASSLIB [myClassLibrary]。如果我不这样做,那么我会收到错误消息。
    • @wilbishardis,您如何进行编辑...您是直接从 .vcx 中还是通过 IDE 进行编辑。您是否与某些源代码控制程序有关?
    • 我正在通过 IDE 工作。 .vcx 是项目的一部分,因此从项目的“类”选项卡中,展开 .vcx 并双击该类进行编辑。此外,如果我通过 VFP 中的工具/类浏览器编辑类,我也会遇到同样的问题。
    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多