我正在尝试跟踪我们处理com对象时的错误。我们的程序是从我们的activeX控件启动的,当应用程序再次关闭时会出现一些问题。我想在我们的应用程序首次从OCX启动时,将visual studio(2008)调试器附加到我们的应用程序中。我怎么能这样做?
一些细节:
a)OCX和应用程序主要用c / c ++编写,只有一点c ++ / cli(在启动应用程序时不起作用)
b)如果我在程序运行时附加到程序,我会在olelock.cpp退出时得到一个断言
void AFXAPI AfxOleUnlockApp()
{
AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
ASSERT(pModuleState->m_nObjectCount != 0); <--- Triggers this
if (InterlockedDecrement(&pModuleState->m_nObjectCount) == 0)
{
// allow application to shut down when all the objects have
// been released
::AfxOleOnReleaseAllObjects();
}
}
因此,当我首次从OCX启动时,我想将调试器附加到我们的程序中,这样我就可以尝试跟踪COM对象的生命周期。或许还有另一种方法来追踪这些物体?