Com类调试方法

本文关键字:方法 调试 Com | 更新日期: 2023-09-27 18:19:19

我正在使用Visual Studio 2008开发COM互操作类。并在Visual FoxPro 9.0中使用这些类当我编译类库时,它在编译后注册。

在Visual FoxPro上,我用下面的代码在命令窗口创建对象:

newObj = CREATEOBJECT("CemT.Deneme.ClassTest")

当我想在Visual Studio上更改类库时,我无法再次编译和注册dll。它给了我这个错误:

Unable to copy file "obj'Debug'clCOMTest.dll" to "bin'Debug'clCOMTest.dll". The process cannot access the file 'bin'Debug'clCOMTest.dll' because it is being used by another process.
有了这个错误,我将不得不退出VFP并重新开始。在创建对象之前,我正在编译Visual Studio上的类库。这样我就可以使用最新版本的dll了。

这看起来很正常,因为VFP使用dll,但有没有办法做到这一点,而不重新启动VFP?

Com类调试方法

在VFP中,你试过吗

释放库{你的dll文件}

或者,根据文档,您可以通过

清除所有API库

SET LIBRARY TO

(没有任何特定的库名)来清除它们

当我曾经做过这类事情(c++ COM组件设计使用VB作为主机),我曾经设置"调试"命令行在VB中打开正确的项目。

换句话说,我是在c++调试器中运行VB开发环境。

这很好,因为我仍然可以在我的DLL中设置断点等等,并同时在VB和c++端工作。(在c++中按"Stop"前,请记住在VB中按"Save")

我从来没有使用过FoxPro,但你可以用-C选项做同样的事情:

http://msdn.microsoft.com/en-us/library/bzb50fbk (v = VS.71) . aspx

这很简单,如果我理解正确的话,在VFP中,

发布newObj

在应用程序关闭之前,VFP不会从内存中完全释放COM对象。

使用RELEASE命令不会完全释放它