【问题标题】:Messagebox error shown during compilation, from an OCX编译期间显示的消息框错误,来自 OCX
【发布时间】:2020-11-04 17:25:58
【问题描述】:

在编译一个 VB6 项目时,我在消息框中收到错误消息:

(再次注意,这不是运行时错误,而是编译时错误。在构建 EXE 时)。

VBCCR16 是 OCX 库的名称,因此在编译引用它的项目期间,OCX 中的某些代码显然正在运行。我从来不知道 OCX / DLL 代码是在编译时运行的。

我以前从未见过这个并且正在尝试调试它,但还没有成功。我曾尝试在进程监视器和进程资源管理器中查看 VB6.exe 及其编译器进程,但这表明没有明显的继续。事件查看器也没有(没有条目)。

由于错误 0 在 VB6 中通常意味着“没有错误”,因此这本身似乎不是一个有用的线索。

编译期间在 OCX / DLL 中调用了哪些代码?什么可能导致这种情况?

关于如何调试此问题的任何建议?


注意 1 - 此错误发生在我们的构建机器(Win7 虚拟机)上,但在编译期间不会发生在我自己的 PC 上。如果我只是在 IDE 中运行代码,它也不会发生。

构建设置已使用多年,以前从未见过。我不认为这是内存或磁盘空间问题。


注 2 - 我也有 posted a question to the OCX library's author,但我不确定这是否真的是图书馆或其他问题,因此这里的问题。


注 3 - 我刚刚看到 this other question,它描述了编译期间运行的代码。所以这显然解释了这个问题的一般背景,但不是真正的根本原因。

【问题讨论】:

标签: vb6


【解决方案1】:

问题可能与设计者有关。 建议将设计器部分与上次编译的先前源进行比较,发现奇怪的变化,例如设置为 CTX 而不是特定字体的字体。 例如:

font            =   "MyControl.ctx":0848
instead of
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
        Name         =   "MS Sans Serif"
        Size            =   9.75
        Charset         =   0
        Weight          =   400
        Underline       =   0   'False
        Italic          =   0   'False
        Strikethrough   =   0   'False
EndProperty

    

【讨论】:

  • 语法"MyControl.ctx":0848 表示VB 将查看与.ctl 文件一起保存的文件“MyControl.ctx”。 0848 是该文件中的索引或“地址”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多