【发布时间】:2010-11-05 16:28:17
【问题描述】:
目前我正在努力尝试在我制作的简单系统上使用 COM dll。一切都成功编译,但在运行时 CoCreateInstace 返回 S_OK,但不知何故我的对象指针返回 NULL。
这个接口指针是在我的类头上创建的。最奇怪的是,在方法堆栈上实例化相同的指针类型会产生正确的对象,但随后对 __hook 的调用在尝试创建 BASE com 类时会引发访问冲突。
其他一些可能有用的方面:
尝试使用以 COINIT_MULTITHREADED 和 COINIT_APARTMENTTHREADED 启动的 CoInitalizeEx 运行程序
该项目是一个dll,其中使用了COM dll
我已经尝试了相同的方法,但没有启动新线程,但错误仍然存在
我已经制作了一个测试程序(没有线程,可执行)并且对象被正常创建,并且被正确挂钩。所以我猜这与它是一个 DLL 本身或线程相关。
PS:作为额外的问题,为什么 google 不返回任何与 COM 相关的有利信息? :)
【问题讨论】: