佚名通过本文主要向大家介绍了在DLL中创建COM对象不成功,在EXE中创建能够成功,问题非常奇怪,请高人指点!等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 在DLL中创建COM对象不成功,在EXE中创建能够成功,问题非常奇怪,请高人指点!
描述:
描述:
在DLL中创建COM对象不成功,在EXE中创建能够成功,COM对象是用ATL实现的自动化对象,是一个DLL,已经在注册表中注册。
hr = ::CoCreateInstance (CLSID_Interface, NULL, CLSCTX_INPROC_HANDLER ,
IID_IInterface, (void **) &g_pViaIf);
在DLL中:第三个参数指定为CLSCTX_INPROC_SERVER,CLSCTX_LOCAL_SERVER 程序均会死在这里,用CLSCTX_INPROC_HANDLER,创建会失败,不明白为什么?参考MSDN的文档,在DLL中是应该用CLSCTX_INPROC_HANDLER。
另外,我是用的MFC static连接DLL,希望在InitInstance里面创建COM对象,在ExitInstance释放对象。