|
|
1
1
听起来,新dll中定义的接口中的某个类型与前一个dll中的类型不同。我推断您在DLL的公共接口中使用在第三方程序中定义的类型。在我看来,第三方改变了其中一种类型的定义,但保持了名称和guid的一致性。你可以用类似的东西 OLE/COM Object viewer 来检查这是不是真的。如果是真的,那么你可以向第三方程序的发布者投诉。你有足够的政治权力来成功吗? 布鲁斯·麦金尼,写作大师 Hardcore Visual Basic 6 然 into the same issue 在类型库中的结构中,他更改了一些成员类型。他能找到的唯一解决办法是(本质上)打破二进制兼容性——这是在与他相当熟悉的vb6编译器团队通信之后。我认为没有人能做得更好。 |
|
|
2
3
最后,我找到了如何系统地诊断VB6错误32801。 我的理论是,当vb6编译器创建项目或二进制兼容库时,编译器会从引用的库中解压缩类型信息。出现错误32801源代码的类型信息与引用的库不同。 有一个叫做oleview的工具。此工具可以将COM类型信息解压缩为IDL文本。我要做的是将引用的库反编译到IDL中,并对失败的库进行最后一次良好的构建。大多数情况下,它是一个构建服务器版本,但构建在开发人员工作站上不起作用。反编译最后一个好的构建。使用文本比较工具(如WinMerge)查找类型库之间的差异。这些差异使得跟踪问题变得容易。 根据差异将决定如何更正。可以通过更正引用dll、源代码更正或源代码引用来进行缓解。 |
|
|
3
0
在devx.com上有一个关于这个错误的讨论,它似乎表明这个问题是由微软的脚本运行时(scrun.dll)引起的。 FileSystemObject compatibility Unexpected error (32810) 你的dll引用了那个库吗?如果是这样,您是否可以删除引用(例如,用内部的vb文件处理函数和/或api调用替换filesystemobject功能)。 |
|
|
4
0
与正在编译的核心项目相关联的任何文件是否标记为只读(即未签出SourceSafe或类似存储库)? *经验 *VBW *LIB |
|
|
5
0
这是我试图在vbide中引用的一条消息,一个最近重新编译的旧OCX。 经过长时间的研究,导致这个错误的代码行似乎是
刚把这个改成
。…错误就消失了。
|