我不是一个Visual Basic的人,但我的任务是维护一个旧的VB6应用程序.每当我签出一个文件时,编辑器会自动用小写替换一堆大写的变量名.我怎么能阻止这个!?我不想让它们全部改回来,当我试图找出真正的差异时,让这些变化出现在SourceSafe"差异"中是一件痛苦的事.
它也会在定义中自动更改它:Dim C as Control变为Dim c作为Control.Dim X&变成Dim x&.但它不会一直这样做; 例如,从Dim x&下来的三行,有一个Dim Y&,大写,它没有改变.为什么这样对我呢?
我刚刚创建了几个Property Set方法,但它们没有编译.当我改变它们时Property Let,一切都很好.
因为我已经研究了文档,找到之间的区别Property Set和Property Let,但必须承认自己毫无收获.有没有什么区别,如果有的话,有人可以提供指向它的正确解释吗?
可能重复:
在Windows 7上有没有人在Visual Studio 6上取得成功?
VB6 IDE是否在Windows 7 64位上运行?
我在Windows 7上安装VB6时遇到了问题.我发现它是一个传统的IDE,我在网上的研究并没有那么大的帮助.每次我尝试在Windows 7上安装VB6时,除了通知我兼容性问题的警报外,安装程序会在接近结束时运行并失败,安装过程最终会失败.当进行另一次尝试时,某些dll文件可能无法访问.
这些只是我访问过的一些链接,希望获得解决方案,甚至只看到一些面包屑:
- 如何在Windows 7上安装VB6
- 在Windows 7 64位上安装VB6
在有人说,"为什么在Microsoft Windows Visual Studio的新版本出现时,你为什么要在Windows 7上安装VB6",VB6仍然需要维护和更新现有的遗留系统.
那么问题是,有没有办法在Windows 7上安装VB6而没有兼容性问题?是否更好的安装虚拟盒并在XP中运行VB6 IDE?还是有其他一些我没有遇到的方法可能适用于这种困境?
谢谢和亲切的问候,
克雷格
在过去的3到5年中,我一直在更新基于Visual Basic 6.0的保险应用程序和商业集成工具包.
根据微软的" It just works policy ",在2008年4月8日之后不再支持IDE.
它仍然可以开发和部署Visual Basic 6.0应用程序.
何时不可能支持Visual Basic 6.0应用程序,或者它们会像Cobol应用程序那样永远存在吗?
更新:Microsoft声明2010年3月:Visual Basic团队致力于Windows Vista,Windows Server 2008(包括R2和Windows 7)上的Visual Basic 6.0应用程序的"It Just Works"兼容性.
2011年5月更新:
20岁生日快乐Visual Basic!
我们的项目中有一些代码看起来像这样:
Private Sub Method1()
Call InnerMethod
End Sub
Private Sub Method2()
InnerMethod
End Sub
Private Sub InnerMethod()
'' stuff
End Sub
Run Code Online (Sandbox Code Playgroud)
Method2优于Method2的优势是什么?
在Windows 7上安装完全爆炸之前,VS6弹出了一系列错误.我特别需要在Windows 7上运行VB6.任何人都有运气吗?
我尝试Microsoft Rich Textbox Control 6.0 (SP6)通过VB6 IDE中的Project - > Components ...添加控件.控件存在于控件列表中.当我勾选它并单击确定/应用时,我收到Object library not registered错误:

环境是Windows 7 SP1 x64,带有最新更新,VB6 SP6 + KB957924.richtx32.Ocx存在于C:\Windows\SysWOW64\.
我尝试通过在提升的命令提示符下运行来重新注册.ocx:
cd c:\windows\SysWOW64
regsvr32 /u richtx32.Ocx
regsvr32 richtx32.Ocx
Run Code Online (Sandbox Code Playgroud)
注册成功完成,但无法解决问题.
当我使用API Monitor查看引擎盖下的内容时,最近的可疑调用就是LoadRegTypeLib ({7c0ffab0-cd84-11d0-949a-00a0c91110ed}, 0x0001, 0x0000, LOCALE_NEUTRAL, 0x0018e82c)返回TYPE_E_LIBNOTREGISTERED.
请查看帖子末尾的最新更新.
特别是,请参阅更新4:变体比较诅咒
我已经看到配偶撞到墙上以了解变体是如何工作的,但从来没有想到我会有自己的糟糕时刻.
我已成功使用以下VBA构造:
For i = 1 to i
当这工作完全i是一个整数或者任何数值类型,从1迭代到原始值的i.我这样做的地方i是一个ByVal参数 - 你可能会说懒惰 - 让我自己声明一个新的变量.
然后当这个结构"停止"按预期工作时,我遇到了一个错误.经过一些艰难的调试后,我发现当它没有i被声明为显式数字类型时,它的工作方式不同,但是a Variant.问题有两个:
1- For和For Each循环的确切语义是什么?我的意思是编译器执行的操作顺序是什么,顺序是什么?例如,限制的评估是否在计数器的初始化之前?在循环开始之前,这个限制是否被复制并"修复"了?等等.同样的问题适用于For Each.
2-如何解释变体和显式数字类型的不同结果?有人说变体是一个(不可变的)引用类型,这个定义可以解释观察到的行为吗?
我已经为涉及和语句的不同(独立)场景准备了MCVE,并结合了整数,变体和对象.令人惊讶的结果促使明确定义语义,或者至少检查那些结果是否符合定义的语义.ForFor Each
欢迎所有见解,包括解释一些令人惊讶的结果或其矛盾的部分见解.
谢谢.
Sub testForLoops()
Dim i As Integer, v As Variant, vv As Variant, obj As Object, rng As Range
Debug.Print vbCrLf & "Case1 i --> i ",
i …Run Code Online (Sandbox Code Playgroud) 有人可以帮助我恢复思绪吗?
如何在Visual Basic 6/VBScript源中指定十六进制值?
这不是0x ABCD,因为它在C++中,这是我能记住的......它是类似的......但是什么?
我知道这个问题可能和其他人类似,但实际上我正在寻找VB6开发人员应该切换到C#的原因.
我的公司最近批准了用C#编写的项目,所以我们有很多VB.Net程序员,但是,我们有一些遗留的应用程序开发人员也在VB6中.我们有时间框架将这些应用程序重新编写为.Net网络应用程序.所以无论他们将要学习什么新东西.
今天的开发人员之一特别问"我们为什么要切换到C#?"
我回答说社区在很大程度上已经决定使用C#来实现C#中大约80%的示例.我是一名VB.Net程序员,我很高兴终于开始研究C#,但是,由于我是如此新,我不确定我能回答"为什么?" 题.我的理由更多是因为我想学习它.
因此,如果没有任何资源可以发送给这些开发人员来平息他们的神经,那么我不会感到很好奇.
期待您的投入!
vb6 ×10
ide ×2
vba ×2
windows-7 ×2
asp-classic ×1
asp.net ×1
c# ×1
for-loop ×1
installation ×1
legacy ×1
legacy-code ×1
letter ×1
ocx ×1
oop ×1
properties ×1
richtextbox ×1
setter ×1
syntax ×1
variant ×1
vbscript ×1
windows ×1