1
我有我的程序由VSTS VSinstr工具检测,以收集覆盖信息。但是,当运行我的仪器化的二进制文件,特别是我的一个COM DLL时,我的程序一直崩溃在出口点。COM DLL被卸载,锁定计数器仍然非零
我调试,找出死机的原因是:
- 首先,我打开我的coLoadLibrary(bAutoFree = TRUE)COM DLL。
- 我的程序做了一些工作。
- 来到退出点。
- 然后,我的COM DLL被卸载。 WINDBG指示它的DllMain用dwReason == DLL_PROCESS_DETACH调用。
- 我的COM DLL中的代码被执行并引发访问冲突(代码为c0000005)。让我困惑的是,在这个时候,_AtlModule.m_nLockCnt的值仍然等于2!
任何想法?
你为什么要调用CoLoadLibrary而不是CoCreateInstance?你打电话给CoFreeLibrary吗? – 2011-12-20 01:57:25