在VB6 IDE中工作时卸载COM控件

时间:2008-08-02 11:52:02

标签: com vb6

我日常工作的一部分是维护和扩展传统的VB6应用程序。公共引擎是用C / C ++编写的,VB6使用这些函数来提高性能。

在异步编程方面,C接口是不够的,我们依靠COM控件将事件激发到VB6。

我的问题是,当我在VB6中注册控件时,VB将此控件加载到内存中,并且在我退出VB6 IDE之前不会卸载它。由于控件是一直加载的,我无法在VC6中重新编译它,因为DLL文件已被锁定。

我找到的解决方案不是在VB中启用控件,而是使用CreateObject()和我的控件的全名。问题是我必须将我的控件声明为Object,因为VB6对我正在使用的接口一无所知,而且我无法访问IntelliSense,这很痛苦。

在退出应用程序或直接在IDE中,我怎么能告诉VB6卸载控件?

1 个答案:

答案 0 :(得分:27)

我很确定没有好办法强制VB6卸载控件。

这就是我做的...而不是并排运行Visual C和Visual Basic,在 VC下运行VB6

  1. 加载VC
  2. 打开包含COM对象的项目
  3. 编辑,更改等
  4. 在VC中,使用适当的命令行参数将Output Executable设置为VB6.EXE以加载VB6工作区
  5. 现在点击F5启动VB6 IDE并加载VB6项目
  6. 如果要再次更改COM代码,请退出VB6.EXE,进行更改,然后再次按F5。只要您保存工作区,VB6就会记住您打开的窗口和所有项目设置。
  7. 此方法的优点:

    • 您可以在COM对象中设置断点并使用完整源调试器进行调试
    • 您可以在C和VB中同时进行调试
    • 每当VB6运行时,它总是拥有最新版本的COM DLL