小编Ben*_*ene的帖子

Visual Basic 6.0无法在Windows 7上编译Collection

我将尝试简要说明:我们使用Visual Basic 6.0编写的代码,我试图在Windows 7 64位计算机上编译.(以前这是在一台旧的XP计算机上编译的.)大多数代码似乎都能正确编译,但是某些具有属性的代码(如NewEnum)并不尊重VB属性.这是一个例子:

VB6方法如下所示:

Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Attribute NewEnum.VB_MemberFlags = "40"
    'this property allows you to enumerate
    'this collection with the For...Each syntax
    Set NewEnum = mCol.[_NewEnum]
End Property
Run Code Online (Sandbox Code Playgroud)

这是使用时创建的默认Enumerator Class Builder Utility.

但是,编译代码时不遵循Attribute元素.使用OLE View程序,它显示属性被忽略.

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

[id(0xfffffffc), propget, hidden]
HRESULT NewEnum([out, retval] IUnknown** );
Run Code Online (Sandbox Code Playgroud)

但Windows 7计算机生成:

[id(0x68030000), propget]
HRESULT NewEnum([out, retval] IUnknown** );
Run Code Online (Sandbox Code Playgroud)

我试图将Visual Basic应用程序设置为在XP(Service Pack 3)兼容模式下运行,这没有帮助.

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

windows vb6

5
推荐指数
0
解决办法
209
查看次数

标签 统计

vb6 ×1

windows ×1