Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Basic 6.0无法在Windows 7上编译集合_Windows_Vb6 - Fatal编程技术网

Visual Basic 6.0无法在Windows 7上编译集合

Visual Basic 6.0无法在Windows 7上编译集合,windows,vb6,Windows,Vb6,我将尽量简短:我们有用Visual Basic 6.0编写的代码,我正试图在Windows 7 64位计算机上编译这些代码。(以前这是在旧的XP计算机上编译的。)大多数代码似乎编译正确,但是某些具有属性的代码,如NewEnum,不符合VB属性。以下是一个例子: VB6方法如下所示: Public属性获取NewEnum()作为IUnknown 属性NewEnum.VB_UserMemId=-4 属性NewEnum.VB\u MemberFlags=“40” '此属性允许您枚举 '此集合包含For…

我将尽量简短:我们有用Visual Basic 6.0编写的代码,我正试图在Windows 7 64位计算机上编译这些代码。(以前这是在旧的XP计算机上编译的。)大多数代码似乎编译正确,但是某些具有属性的代码,如NewEnum,不符合VB属性。以下是一个例子:

VB6方法如下所示:

Public属性获取NewEnum()作为IUnknown
属性NewEnum.VB_UserMemId=-4
属性NewEnum.VB\u MemberFlags=“40”
'此属性允许您枚举
'此集合包含For…每个语法
设置NewEnum=mCol。[[u NewEnum]
端属性
这是使用
类生成器实用程序时创建的默认枚举数

但是,在编译代码时,属性元素不受尊重。使用OLE View程序,它显示属性被忽略

XP计算机生成以下代码段:

[id(0xfffffffc), propget, hidden]
HRESULT NewEnum([out, retval] IUnknown** );
但Windows 7计算机会生成:

[id(0x68030000), propget]
HRESULT NewEnum([out, retval] IUnknown** );
我已尝试将Visual Basic应用程序设置为在XP(Service Pack 3)兼容模式下运行,但这没有帮助


由于应用程序的大小和复杂性,目前无法将其从VB6移植到.NET,我们需要对其进行编译。有人知道如何正确配置VB6,以便它正确编译集合吗?

所有这些都与所涉及的操作系统或应用于它的任何appcompat垫片无关。如果你没有一个“Vista感知”清单,你会得到除版本谎言之外的XP垫片。在以后的OSs中,如果清单中缺少supportedOS元素(如果有),则会使用其他下层垫片。因此,无论如何,您都不想通过文件属性强制安装兼容性垫片。更可能的是,如果存在真正的差异,则与未应用VB6 Service Pack有关。谢谢Bob。我已经安装了service Pack,当VB6启动时,它会注意到它正在运行SP6(最新版本)。我重新格式化了机器,这次它工作了。我不明白,我也很困惑。我想这可能是安装过程中的一些细微差别,或者是不同的SP6版本(我见过它们高达6d)。