标签: vb6

Windows 7是否支持VB6运行时?

我似乎无法找到一个直接的答案.似乎不支持Visual Studio 6,但我只关心运行时.我们有一些我们不想重写的遗留应用程序,但我们的客户希望它们可以在Windows 7上运行.

如果任何人都可以提供MS关于该主题的官方链接,那将非常有帮助.

vb6 legacy-code windows-7

25
推荐指数
2
解决办法
4万
查看次数

无权访问私有MSMQ

在XP机器上有一个由.net服务创建的私有消息队列.当我想在VB6应用程序中访问此私有队列时,我不断收到"访问被拒绝"错误.所以这似乎是一个安全问题,只有我不明白为什么即使我以管理员身份登录,我仍然无法访问在同一台机器上创建的队列.还有什么我必须考虑的事情.

关于如何在VB6中使用队列的示例

Public msgQueue As MSMQQueue

Private Sub OpenQueue()

    Dim MQ As New MSMQQueueInfo
        MQ .PathName = ".\Private$\incommingQueue"

    Set msgQueue = MQ.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE)

End Sub
Run Code Online (Sandbox Code Playgroud)

vb6 msmq

25
推荐指数
2
解决办法
2万
查看次数

VBA和MS-Access中的Bang符号和点表示法

在阅读我正在记录的应用程序时,我在访问对象属性/方法等时遇到了一些bang符号示例,而在其他地方,他们使用点符号来表示同样的目的.

使用其中一个是否存在差异或偏好?一些简单的谷歌搜索只显示有关该主题的有限信息,有些人实际上在相反的情况下使用它.也许MS的编码标准部分可以指出疯狂的方法?

vb6 ms-access vba notation

25
推荐指数
3
解决办法
2万
查看次数

Visual Studio 6 Windows公共控件6.0(sp6)Windows 7,64位

我被要求帮助为某人创建遗留vb6应用程序,因此我决定按照本指南在我的Windows 7 x64笔记本电脑上投入Visual Studio 6 .

它安装得很好,从我可以看到一切正常,除了Microsoft Windows Common Controls 6.0(sp6).Microsoft Windows Common Controls-2 6.0(sp6),Microsoft Windows Common Controls 5.0(sp2)等都可以正常工作.但是,当我尝试添加Microsoft Windows公共控件6.0(SP6)组件时,我收到错误:

'' could not be loaded
Run Code Online (Sandbox Code Playgroud)

我无法添加图像,所以我已经为这里的任何人想要看到它的屏幕截图上传了一个:

http://i.imgur.com/7aym4xB.png

我已经尝试注册/取消注册/重新注册MXCOMCTL.OCX,MSCOMCT2.OCX,msdatsrc.tlb都没有成功.我还卸载了一个已知的安全更新,该更新可能导致Windows公共控件出现问题.我已经删除了IE11,即使报告状态IE11不会像IE10那样导致MSCOMCTL.OCX问题.

我在Windows XP SP3兼容模式下运行VB6.EXE.使用禁用可视主题,禁用桌面合成,以及在高DPI设置下禁用显示缩放.以及以管理员身份运行它.

我还尝试打开一个使用此控件的先前项目,并且在加载过程中失败时出现与屏幕截图相同的"空白"错误,生成的错误日志中包含以下内容:

第35行:控件lvData的类MSComctlLib.ListView不是加载的控件类.第223行:控制Stat的MSComctlLib.StatusBar类不是加载的控件类.

所以这告诉我这不是.vbp中的版本问题,就像一些建议(因为它也发生在新的空白项目中).

我斗智斗勇.显然人们已经使VB6和Windows 7 x64都能正常工作(使用Windows公共控件)但是我没试过可以缓解我的问题.我希望这里有人可能会遇到这个问题,或者对于发生的事情有一些想法.

vb6 visual-studio visual-studio-6 microsoft-common-controls

24
推荐指数
2
解决办法
11万
查看次数

如何将丑陋和未记录的VB6代码迁移到.NET

我知道已经有关于VB6迁移的问题,但是我的项目的代码库带来了一些新的问题.

我不得不说代码质量,结构和架构只是一场噩梦.有两个大项目:Nr.1有40个表格,40个模块和一些类文件,这个EXE是一种"基础系统".Nr.2有80个表格,20个模块和几个类文件,这个EXE调用函数形成"基本系统".然后还有大约10个带GUI的项目(每个1-3个表单)和另外90个非GUI项目,其中大多数是EXE文件,一些是DLL.DLL用C,C++和VB6编写.

该守则自10年以来逐渐发展,并且一次由1个(坏)开发人员编写.

  • 500行(及更多)的功能非常常见.
  • 90%的GUI组件被命名为text1,command2(1),...
  • 复制和粘贴到处都是例如一个EXE项目(没有GUI),复制了5000行代码,副本中唯一的变化是每个Mail而不是FTP发送文件(同样项目的另外2个副本也是).
  • 我曾经有一个小形式(15个字段),在那里我应该解决一个小问题(通常最多半小时的事情),每次我改变一些东西,它要么不起作用,要么在表格中产生新的错误.2天之后,我决定完全重写表单,从旧表单中的~20个SQL语句中,只有2个在新表单中存活.
  • 甚至不询问代码中的评论......

几个月前我接手了这个项目,我是唯一的维护者.变更请求和错误的流量不断(但很低),我们从客户处获得维护预算,以保持软件运行并在法律要求方面"更新".

我的选择

1)从头开始重写 - 在这种情况下,我可以用Java编写它以实现可移植性.这里的问题是,除了一些(旧)用户帮助,没有文档,所以丑陋的代码是"文档".有一个人具有高级别知道该软件应该如何做.此外,很难说服管理层这样做,即使长期存在巨大的成本节约,也存在政治问题.我也不能一次做那个(vb)项目,因为数据库结构并不比代码好,即必须从头开始.所以我只能一次更改整个软件.

2)将代码迁移到VB.NET/C#主要项目的迁移首先,我测试了已经从Project Nr.1获得~2000升级注释,其中大部分内容如Screen.MousePointer更改,函数具有变量返回值和等等.我的想法是在转换之后,创建用于数据库抽象的类,更改代码以使用这些类,并进行重构,迁移和更改其他项目,当所有代码使用数据库类时,更改数据库结构.

3)每当我必须在那里改变一些东西时重构VB6中的代码(我已经部分地做了这个)并且在某些时候重构了其余部分.这样就可以更容易地看到原始功能,因为它是原始代码,当出现错误时,很明显它们不能成为迁移的结果.当代码被重构时(我假设它也会小50-75%),将它迁移到.NET更容易.然后改变DB结构(然后进行另一轮重构......).

将来会有一些更大的变化(使它与Win7兼容,以及影响代码大部分的另一个大CR),因此我将不得不通过这些变更进行这些更改.无论如何,很多代码.

我的问题是谁有移植糟糕,丑陋代码的经验/提示?你会建议哪些选择?

.net vb6 vb6-migration

23
推荐指数
5
解决办法
3712
查看次数

调试模式在VB 6中?

如何在VB 6中执行类似于以下C代码的操作?

#ifdef _DEBUG_
    // do things
#else
    // do other things
#end if
Run Code Online (Sandbox Code Playgroud)

vb6 conditional-compilation

23
推荐指数
4
解决办法
1万
查看次数

C/C++'继续'在VB6中等效

是否有一个VB6等同于C/C++'continue'关键字?

在C/C++中,命令'continue'开始循环的下一次迭代.

当然,存在其他等同物.我可以将循环的剩余代码放在if语句中.或者,我可以使用goto.(啊!)

c vb6

22
推荐指数
3
解决办法
2万
查看次数

VB中可变数量的参数

如何在visual basic中创建具有可变数量参数的函数?恩.

x =  Sum(1,2,3)
y =  Sum(1,2)

Function Sum('how to declare argument here')
'Is there any special argument manipulation inside function before it is usable?
End Function
Run Code Online (Sandbox Code Playgroud)

vb6

22
推荐指数
2
解决办法
1万
查看次数

22
推荐指数
3
解决办法
4万
查看次数

Windows如何决定是否显示UAC提示?

在我的VB6应用程序中,我打开其他EXE文件.我的应用程序在没有任何UAC提示的情况下运行,但我有一个检查软件更新的EXE.这会提示UAC提示.那么Windows如何决定是否显示UAC提示?我看到了这个链接.那么它取决于我在我的应用程序中编写的代码吗?有趣的是,我的应用程序(即主EXE文件)不会提示UAC,而检查和下载更新的小EXE会提示UAC.我已经对所有EXE文件进行了数字签名.我已经看过以下链接了:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa511445.aspx

http://technet.microsoft.com/en-us/library/cc505883.aspx和其他一些.

但我仍然不清楚它.

windows security vb6 uac windows-7

22
推荐指数
1
解决办法
1万
查看次数