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

时间:2020-03-05 18:37:21  来源:igfitidea点击:

我日常工作的一部分是维护和扩展旧版VB6应用程序。一个通用的引擎用C / C ++编写,VB6使用这些功能来提高性能。

当涉及异步编程时,C接口是不够的,我们依靠COM控件将事件激发到VB6.

我的问题是,当我在VB6中注册控件时,VB将该控件加载到内存中,直到退出VB6 IDE才卸载。由于控件始终处于加载状态,因此我无法在VC6中重新编译它,因为DLL文件已锁定。

我发现的## 解决方案不是在VB中启用该控件,而是使用带有我的控件全名的CreateObject()。然后的问题是,我必须将控件声明为对象,因为VB6对我正在使用的接口一无所知,而且我无法访问IntelliSense,这很痛苦。

知道如何在退出应用程序后或者直接在IDE中告诉VB6卸载控件吗?

解决方案:

我很确定没有强迫VB6卸载控件的好方法。

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

加载VC打开包含COM对象的项目,进行编辑,更改等。在VC中,使用适当的命令行参数将Output Executable设置为VB6.EXE,以加载VB6工作区。现在,只需按F5键即可启动VB6 IDE并加载VB6项目当我们想再次更改COM代码时,退出VB6.EXE,进行更改,然后再次按F5. 只要保存工作区,VB6就会记住我们打开了哪些窗口以及所有项目设置。我们可以在COM对象中设置断点,并使用完整的源调试器对其进行调试。我们可以同时在C和VB中进行调试,只要运行VB6,它就始终具有最新版本的COM DLL。

这种方法的优点:

{分块}