【发布时间】:2021-12-12 04:11:07
【问题描述】:
我正在尝试将 VB6 的 VBRUN 类型库导入 Visual C++ 2017 头文件,但由于缺少依赖项而失败。
Visual C++ 报告
“错误 C4772:#import 从缺少的类型库中引用了一个类型; 'missing_type' 用作占位符”
使用 OLE 视图查看文件发现问题出在 DataFormat 属性 (DataFormat([out, retval] --<GetRefTypeInfo failed>** Return))。
缺少的依赖似乎是stdDataFormat:stdDataFormat 驻留在哪个类型库中,为什么缺少它? (我的操作系统是 Windows 10 Enterprise,21H1。)我在安装 Visual Studio 6 时错过了选择吗?
【问题讨论】:
-
我刚刚快速扫描了我的 W10 64 位 Windows 文件夹,除了 .NET 文件夹中的几个 Microsoft.VisualBasic.Compatibility.data.dll 文件之外,唯一一个包含该文本字符串是 C:\Windows\SysWOW64 文件夹中的 MSSTDFMT.DLL。文件描述是“Microsoft 标准数据格式化对象 DLL”,该文件也在我的 W7 Windows\System32 文件夹中。两个系统都安装了 VB6。
-
关于 MSSTDMFMT.DLL 的线索。 Microsoft VB6 support statement 在“支持的运行时文件与您的应用程序一起分发”下列出了此 DLL。所以它是 VB6 运行时的一部分。您是否在 PC 上安装了 Visual Basic 6 IDE?我猜想安装会提供 DLL
-
确切地说,它也是(至少) Visual Studio Service Pack 6 的一部分,在存档 VS6sp61.cab 中
-
类型库什么都没有,那里根本没有代码。它们实际上只是预编译源代码的一种形式,是 IDE 或编译器的输入。
标签: visual-c++ com vb6