VER: OS:WINXP SP2 CAD:AutoCAD Architecture 2008-Japanese ARX:ObjectARX2008配套VS2005开发 现象: 1,ARX反应器在CommandEnd中处理“QUIT”,“QUIT”命令执行结束时,调用VB编写的ActiveXDLL来执行一些清理工作。 2,代码如下: MyReactor::CommandEnd(cmd){ if (cmd == "QUIT") { CoInitialize(); CoCreateInatance(CLSID_OFCOM,NULL,CLSCTX_INPROC_SERVER,IID_OFCOMOBJECT, //<-----------问题代码
(PPVOID)&pV); pV->myFUN(); //<-----------问题代码 pV->Release(); ...... } 3,CAD打开多个DWG关闭时,弹出是否保存的对话框,第1个对话框选择[是]或[否]时,调试代码执行到CoCreateInatance时, 函数没有返回,直接回到CAD中,弹出第2个文件的保存对话框,此时选择[是]或[否]时,CoCreateInatance正常执行。 当第3个文件保存对话框弹出后,选择[是]或[否]时,CoCreateInatance正常执行,pV指针不为空,但执行pV->myFUN(); 时, 程序崩溃。 4,问: (1)为什么CoCreateInatance第一次执行的时候没有返回,而是直接跳到CAD? (2)反应器中不能用CoCreateInatance方法,调用ActiveXDLL吗? (3)ARX反应器中还有怎样的方法调用ActiveXDLL? |