我日常工作的一部分是维护和扩展遗留的 VB6 应用程序。通用引擎是用 C/C++ 编写的,VB6 使用这些函数来提高性能。
对于异步编程,C 接口是不够的,我们依靠 COM 控件向 VB6 触发事件。
我的问题是,当我在 VB6 中注册控件时,VB 会将此控件加载到内存中,并且在我退出 VB6 IDE 之前不会将其卸载。由于控件一直加载,我无法在 VC6 中重新编译它,因为 DLL 文件被锁定。
我发现的一个解决方案不是在 VB 中启用控件,而是使用CreateObject()我的控件的全名。那么问题是我必须将我的控件声明为一个对象,因为 VB6 对我正在使用的接口一无所知,而且我无法访问 IntelliSense,这很痛苦。
知道如何告诉 VB6 在退出应用程序后或直接在 IDE 中卸载控件吗?