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