【问题标题】:Communication b/w c# and vb6 App通信 b/w c# 和 vb6 应用程序
【发布时间】:2015-03-04 22:22:55
【问题描述】:

我们有旧版 VB6 应用程序,我们正在尝试将其移至 C#。作为第一阶段,我们在 C# 中创建了启动表单(具有类似的控件),并希望这个 C# 应用程序与 VB6 启动表单进行通信,以便当用户单击 c# 表单时,它将在 VB6 启动表单上启动按钮单击事件(我们希望它被隐藏) 他们都共享同一个数据库,有人可以给我一个关于我们如何实现这一目标的想法,或者有没有其他方法。谢谢

【问题讨论】:

  • 所以我有几个问题,但会尽量保持简短和简单.. 1. VB6 遗留代码是否可以转换为 C# 或 VB.NET 2. 如果您可以将代码转换为 VB .NET 你仍然可以通过将using Microsoft.VisualBasic 添加到 C# 类标题来引用 VB.Net 程序集......如果这不是一个选项,那么我会查找如何导出 dll 函数或谷歌如何在 C# 中调用 vb6 dll跨度>
  • 当您尝试停用 VB6 应用程序时,为什么要保留它并尝试控制它?如果有一些复杂的业务逻辑,您可以将其移至单独的 VB.net 程序集,然后从您的 c# 应用程序中引用它。将代码从 VB6 迁移到 VB.net 已被广泛记录,这取决于原始代码,是一个艰难的前进过程。我的建议是要么真的退出应用程序/扔掉它,要么保留它,但不要开始混合它......
  • 几年前我们也面临同样的挑战:我们决定将其做成一个混合应用程序:我们将 VB6 应用程序做成一个 dll(好吧,5 个 dll),而此时我们只有一个空的 C#“启动”表单。一个表格一个表格,我们从头开始写新的。困难但可能(最重要的开始提示:使 C# 成为目标 x86)

标签: c# vb6 vb6-migration


【解决方案1】:

如果 VB6 代码太大而无法从头开始完全重写,这可能是个好主意。您可以将 VB6 拆分为单独的 DLL,然后使用 COM 互操作将 DLL 替换为 C# DLL,以便 VB6 和 C# 相互通信。

例如,看看this question 的一些答案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多