我每天工作的一部分是维护和扩展旧的VB6应用程序,其中一个常用引擎是用C/C++编写的,而VB6使用这些函数以提高性能。
在异步编程方面,仅有C接口是不够的,我们依靠COM控件向VB6触发事件。
我的问题是,当我在VB6中注册控件时,VB将这个控件加载到内存中并且只有在退出VB6 IDE后才卸载它。由于控件在整个时间内都被加载,我无法在VC6中重新编译它,因为DLL文件被锁定了。
我找到的一个解决方法是不在VB中启用控件,而是使用完整名称的CreateObject()
创建控件。然后问题就是,我必须将我的控件声明为对象,因为VB6不知道我正在使用的接口,并且我无法访问智能感知功能,这很麻烦。
你有任何想法如何告诉VB6在退出应用程序或直接在IDE中卸载控件吗?