我日常工作的一部分是维护和扩展传统的VB6应用程序。公共引擎是用C / C ++编写的,VB6使用这些函数来提高性能。
在异步编程方面,C接口是不够的,我们依靠COM控件将事件激发到VB6。
我的问题是,当我在VB6中注册控件时,VB将此控件加载到内存中,并且在我退出VB6 IDE之前不会卸载它。由于控件是一直加载的,我无法在VC6中重新编译它,因为DLL文件已被锁定。
我找到的解决方案不是在VB中启用控件,而是使用CreateObject()
和我的控件的全名。问题是我必须将我的控件声明为Object,因为VB6对我正在使用的接口一无所知,而且我无法访问IntelliSense,这很痛苦。
在退出应用程序或直接在IDE中,我怎么能告诉VB6卸载控件?
答案 0 :(得分:27)
我很确定没有好办法强制VB6卸载控件。
这就是我做的...而不是并排运行Visual C和Visual Basic,在 VC下运行VB6 :
此方法的优点: