问题标签 [vb6-migration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1561 浏览

vb.net - 在 vb.net 的 MaskedTextBox 中等效于 vb6 的 Masked Edit 控件中的 cliptext 属性

我发现这个属性很有用,但在 vb.net 中找不到它的直接替代品。有吗?谢谢

0 投票
4 回答
86 浏览

c# - C# 等效于 VB6 中的 ccDebug

我正在尝试将 VB6 代码转换为 c#,我在 VB6 中遇到了这段代码

请帮助我转换此代码或以任何其他方式执行此操作。

谢谢

0 投票
2 回答
2738 浏览

vb6 - VB 6 InteropForms:文件 [...] 不可注册为 ActiveX 组件

我正在逐步完成演练,并试图将控件加载到 VB 6 工具箱中。

我可以将 DLL 作为参考加载,但不能作为 ActiveX 组件加载。当我尝试时,我收到消息“InteropForms:文件 [...] 无法注册为 ActiveX 组件。”。

我可以在运行时将控件创建为普通的 COM 对象。

乔纳森

编辑:

如果我尝试 RegSvr32,我会收到以下消息:

[...] 已加载,但未找到 DllRegisterServer 入口点。无法注册此文件。

编辑2:

如果我使用 RegAsm 注册它,它会出现在组件列表中。但是,如果我检查它,我会收到加载 DLL 的错误。

0 投票
2 回答
373 浏览

.net - 逐步将一个巨大的、单片的 VB6 winforms 应用程序重构为 .Net

简而言之,应用程序从数据库中查找要做某事的指令,执行操作,并将有关该操作成功或失败的信息保存回数据库。它执行大约 40 种不同的操作,例如自动化 Office 应用程序、复制文件、运行搜索等。

该应用程序是一个单独的 EXE,因此所有内容都在主应用程序的进程空间中运行,这一直是不稳定的主要来源,因为它必须加载大量的第 3 方 DLL 才能完成工作,而且它们经常会做一些令人讨厌的事情,导致崩溃整个应用程序。

计划:我想将执行危险繁重工作的代码从 VB6 exe 移到独立于主应用程序运行的外部进程中。原始应用程序只会处理数据库内容并启动其他进程来进行投标。

做这个的最好方式是什么?如果我还在 VB6 中,我想我会构建 ActiveX EXE 来执行此操作,但我不确定 .Net 等价物是什么。理想情况下,VB6 应用程序会声明一个实例化外部进程的对象,并使用对象设置参数的方法,执行进程,可能接收进度通知,最后接收操作结果。

解决此问题的最佳方法是什么?

谢谢!!

0 投票
4 回答
669 浏览

vb.net - 需要数据库建议:将 VB6/ADO/JET 应用程序移植到 VB.NET

我需要将使用 ADO 访问 JET 数据库的 SMALL VB6 应用程序更新(好吧,真的重写)到 Visual Studio 2008 中的 vb.net 应用程序。

我的研究表明我应该使用 LINQ,但似乎无法连接到 JET。如果现在不推荐使用 JET,我应该使用什么?或者我应该在没有 LINQ 的情况下使用 ADO.NET?

请不要回答 SQL Server!- 这需要是最终用户可以在公司或非公司环境中轻松安装的应用程序,并且不得需要任何持续的技术维护。我开始安装 SQL Express,但当它需要至少 2 次系统更新时就停止了,因为这对于这个小应用程序来说太复杂了。

0 投票
2 回答
376 浏览

asp.net - 混合 VB6“遗留代码”和 Web 应用程序

我正在开发一个新网站,使用 ASP.NET MVC2 用 VB.Net 编写,需要为各种复杂的业务逻辑位调用“遗留”VB6 代码。VB6 是一个由许多 dll 组成的框架,并且是非常有状态的,我们几乎模拟了在我们的客户端应用程序中如何使用框架,即应用程序运行(大量状态设置),用户登录(甚至更多状态)和然后加载一个文件(甚至更多状态)。

我已经获得了一个“Web 服务接口框架”来启动并运行它以在 Web 应用程序中使用,这个“Web 框架”将遗留代码隐藏在 IIS 下运行的薄层后面。这个想法是 IIS 提供的线程池将减少内存使用等。我不禁相信提供这个的人没有抓住重点,因为每个实例都是有状态的,所以线程池无法工作,因为一旦用户使用池中的一个特定对象登录,则没有其他对象能够为该客户端提供服务(因为它不会有状态)!此外,与直接调用对象相比,添加 Web 服务接口和关联的 SOAP 编组是一个巨大的开销。

我能想到的唯一方法是一个单一的遗留接口实例,它被所有客户端使用并被每个调用阻塞直到它完成,或者每个客户端一个线程,每个遗留接口对象都在一个新线程中创建并为客户的生活。

这些都不是理想的,但是由于有问题的代码量以及向 .net 的长期迁移计划(2 年以上并且仍然是有状态的),我想不出替代方案。我们为一些客户在 citrix 环境中运行原始客户端应用程序,因此我希望它也可以在每个客户端运行良好的线程给定足够强大的服务器,并且框架本身的开销应该低于涉及客户端应用程序时的开销。

有任何想法吗??

0 投票
4 回答
8743 浏览

.net - 使 DLL COM 可访问

我有一个用 .Net 编写的类库,我想将它提供给 VB6/VBA。我试过的没有用(显然我在问这个问题)。这是我所做的:

  1. 我在 Visual Studio 2010 Express 中创建了一个类库项目并将代码放在一个类模块中。
  2. 我打开项目属性并转到“程序集信息”并选中“使 COM 可见”。
  3. 我去了“高级编译”选项并针对.Net 2.0(这是非常简单的代码)。
  4. 然后我删除了所有对“系统”的引用。
  5. 我构建了项目(没有警告或错误)并将 DLL 从 Bin 文件夹复制到 C:\Windows\System32\
  6. 我运行 RegSvr32 来注册 DLL 并得到错误:

模块“MyDll.dll”已加载,但未找到入口点 DLLRegisterServer。

确保“MyDll.dll 是有效的 DLL 或 OCX 文件,然后重试。

显然我的第一次尝试有点天真。有人可以提供指导吗?

0 投票
1 回答
305 浏览

.net - 实例化对象时出错

我正在(尝试)创建一个可用于 VB6/VBA 的类库。在这里收到一些帮助后,我现在完成了以下工作:

  1. 在 Visual Studio 2010 Express 中创建了一个类库项目并将代码放入一个类模块中。
  2. 得知我需要一个叫做“接口”的奇妙的东西......做了其中之一:)
  3. 我打开项目属性并转到“程序集信息”并选中“使 COM 可见”。
  4. 我去了“高级编译”选项并针对.Net 2.0(这是非常简单的代码)。
  5. 删除了所有对“系统”的引用。
  6. 构建项目(没有警告或错误)并将 DLL 从 Bin 文件夹复制到 C:\Windows\System32\
  7. 跑 RegAsm /tlb。一切似乎都很好。

我打开了excel来运行一个快速测试,TLB可用,但我有两个问题:

  • 我可以在对象浏览器/智能感知中看到类和接口。
  • 当我尝试创建任一对象(Set obj = New MyObj)的实例时,我收到错误:

自动化错误 系统找不到指定的文件。

我可以设置对对象的引用,并且 Intellisense 可以看到它,当我实际尝试创建对象时,我只是得到了那个错误。我错过了一步吗?

0 投票
1 回答
377 浏览

.net - COM 库的属性/方法描述

如果您创建一个 COMClass,我注意到当您引用生成的 tlb 文件时,XML 摘要标记中的值不会显示在 VB6/VBA 的对象浏览器中。有没有办法让这些值显示出来?

0 投票
1 回答
2180 浏览

vb6 - 如何在 VB6 中替换 Sheridan 3D 控件?

我赢得了维护一个使用大量外部控件的大型 vb6 应用程序的第一个价格(大意味着:大到从头开始重写它目前不是一种选择)。

我正在寻找到 vb.net 的平滑升级路径,用更标准的控件替换 3rd 方控件。

Sheridian 3D 控件是否有简单的替代品?(我不关心视觉效果,功能才是重点。)