我刚接触COM,看书上介绍如何聚合组件,我新建两个组件,并都通过了编译,分别得到两个DLL(innerCOM.dll and outerCom.dll),我客户端调用外部组件
::CoCreateInstance(CLSID_OuterCom, NULL, ::CLSCTX_INPROC_SERVER, IID_IX, (void**)&pIX).
程序正常到达外部组件outerCom.dll的Init()方法,但执行到此方法中的去聚合内部组件的方法时
HRESULT hr = ::CoCreateInstance(CLSID_InnerCom, pUnknownOuter, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)m_pUnknownInner);
返回的hr是E_INVALIDARG,好象此返回表示参数有错,然后我就在此加一调试的断点,一个一个参数看,发现CLSCTX_INPROC_SERVER的值,在Watch里显示
CLSCTX_INPROC_SERVER CXX0017: Error: symbol "CLSCTX_INPROC_SERVER" not found
然后我找到这个变量是在WTypes.h头文件中,我就手动把这文件考到我工程中去,然后在工程文件中手动指定此头文件#include "wtypes.h" 但依然得不到值,是这个参数有问题,还是其它的原因呢?
还请各位指点下
::CoCreateInstance(CLSID_OuterCom, NULL, ::CLSCTX_INPROC_SERVER, IID_IX, (void**)&pIX).
程序正常到达外部组件outerCom.dll的Init()方法,但执行到此方法中的去聚合内部组件的方法时
HRESULT hr = ::CoCreateInstance(CLSID_InnerCom, pUnknownOuter, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)m_pUnknownInner);
返回的hr是E_INVALIDARG,好象此返回表示参数有错,然后我就在此加一调试的断点,一个一个参数看,发现CLSCTX_INPROC_SERVER的值,在Watch里显示
CLSCTX_INPROC_SERVER CXX0017: Error: symbol "CLSCTX_INPROC_SERVER" not found
然后我找到这个变量是在WTypes.h头文件中,我就手动把这文件考到我工程中去,然后在工程文件中手动指定此头文件#include "wtypes.h" 但依然得不到值,是这个参数有问题,还是其它的原因呢?
还请各位指点下
解决方案 »
- 浅谈程序员创业
- LPTSTR 转换为string时出现内存不能为读问题
- IDispatch 双接口,自动化,是一样的东西吗
- vs大小写自动识别功能
- 为什么我的VC++6.0在运行的时候会出这样的怪毛病?
- 一个关于Socket和线程的问题?
- ////////如何去除CHtmlView的边框和滚动条?//////
- 关于VS2008的问题
- 菜问题吧:为什么要用ON_WM_PAINT(),ON_WM_ERASEBKGND(),ON_WM_QUERYDRAGICON()有些例子中的这些消息处理涵数我去掉了也可正常运行
- 吃~~~~~了? 问一个Subclass & Attach的问题
- 好奇怪呀,界面出不来了,帮我看看!
- 实现静态框中图片的放大/缩小/拖动功能
嗯,是不是直接调用innerCOM.dll?,我觉得也是应该试一试