Unload a COM control when working in VB6 IDE
我日常工作的一部分是维护和扩展旧版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。
|
控件卸载维护通用
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。