【问题标题】:COM Interop VB6 ActiveX EXECOM 互操作 VB6 ActiveX EXE
【发布时间】:2014-01-04 07:26:23
【问题描述】:

在我的 VS2012 C# 项目中,我正在通过其自动生成的程序集等价物连接使用 VC6 组成的 ActiveX EXE 的代码,我想,当在我的 C# 项目中引用它时,使用 TLBIMP.exe 完成了一些管道。

执行代码时,我看到 ActiveX EXE 在单独的进程中启动,并在引用它的 C# 代码终止时终止。

它似乎按我的预期工作,但我很难找到可以放心的文档,以确保它是 C# 项目中 ActiveX EXE 的正确用法。

谁能给点建议?

【问题讨论】:

    标签: c# vb6 activex


    【解决方案1】:

    您可以看到进程正在运行,这是一个好兆头。证明成功并获得 100% 信心的一种非常简单的方法是将日志记录添加到您的 VC6 exe 并检查日志以确保其行为符合您的预期。例如,如果您的 VC6 exe 接收命令行参数,您可以记录它们的内容,以确保您从 C# 程序中正确执行它。如果您无法更改 VC6 exe,那么您将面临黑盒测试:对于特定的输入,您是否获得了预期的输出?我想你可以使用更花哨和更耗时的方法,但如果我的建议足够,你可能不需要。

    【讨论】:

    • 我确信这是在 Visual Studio 中将 ActiveX.EXE 引用为 COM 组件的正确用法。我仍然看到的唯一问题是 ActiveX.EXE 即使在引用它的进程终止后仍然存在。你有什么线索吗?为什么会留下来?
    • @hanishi 1) 您说“执行代码时,我看到 ActiveX EXE 在单独的进程中启动,并在引用它的 C# 代码终止时终止。”在您的问题中,因此您的新评论与此冲突。它是哪一个? 2)如果它没有终止,我认为您应该发布一个新问题并显示您用于启动 EXE 的代码。但是,也许这会有所帮助:stackoverflow.com/questions/7322024/…
    • 感谢您的评论。我注意到如果 ActiveX Exe 进程通过其事件变量获取 C# 事件处理程序,则 ActiveX EXE 进程仍然存在(我将 C# 事件处理程序附加到 ActiveX EXE VB6 事件变量)
    猜你喜欢
    • 2011-07-02
    • 2010-10-29
    • 2014-12-17
    • 2017-09-02
    • 1970-01-01
    • 2011-02-20
    • 2014-01-16
    • 2012-10-15
    • 1970-01-01
    相关资源
    最近更新 更多