因为都是Visual Stdio的project,使用Dev-C++的导入功能,把项目转换成Dev-C++项目,编译都没有错误,但运行测试程序总是提示CoGetClassObject()执行结果有错误。
hr = CoGetClassObject(&CLSID_IExample, CLSCTX_INPROC_SERVER, 0, &IID_IClassFactory, &classFactory)
执行完成后,hr的值是CO_E_ERRORINDLL,即0x8004_01f9。事实上,COM对象已经注册成功。
因为Dev-C++导入时不是自动加入这个选项,需要手动加入,如Dev-C++中的FAQ所述:
Put in Project Options, Linker parameters : --def yourfile.def
这样重新编译后,就可以正常执行了。