博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VC++ : GetIDsOfNames 调用失败,获取的dispid为-1
阅读量:6229 次
发布时间:2019-06-21

本文共 635 字,大约阅读时间需要 2 分钟。

  今天调试自己的程序,需要调用一个COM组件中的方法,利用GetIDsOfNames获取调用函数对象的DISPID。

  GetIDsOfNames:

    把COM接口的方法名字和参数(可选)映射成一组DISPID。

  GetIDsOfNames(

    /* [in] */ REFIID riid,
    /* [size_is][in] */ LPOLESTR *rgszNames,
    /* [in] */ UINT cNames,
    /* [in] */ LCID lcid,
    /* [size_is][out] */ DISPID *rgDispId)

  代码片段如下:

DISPID PropertyID[1] = {
0}; BSTR PropName[1]; PropName[0] = SysAllocString(L"ExtractString"); HRESULT hResult = lpDispatch->GetIDsOfNames(IID_NULL, PropName, 3, LOCALE_SYSTEM_DEFAULT, PropertyID); DWORD dRet = GetLastError();

  运行结果:PropertyID 为 -1,GetLastError返回14007

     

  查了查资料,终于找到原因了:COM组件未注册的缘故!

  regsvr32 *.ocx即可!

 

 

  

转载地址:http://lzxna.baihongyu.com/

你可能感兴趣的文章
【转】 FRTO—虚假超时剖析
查看>>
html区块元素
查看>>
json数据结构
查看>>
使用classList来实现两个按钮样式的切换
查看>>
二分匹配 飞行员配对方案问题
查看>>
几个著名java开源缓存框架的介绍
查看>>
CSS核心内容:层叠和继承
查看>>
windwos phone 的listbox 的各种细节
查看>>
Resin
查看>>
理解Android虚拟机体系结构(转)
查看>>
Redis系列之(一):10分钟玩转Redis(转)
查看>>
调试逆向分为动态分析技术和静态分析技术(转)
查看>>
上传文件的大小限制 专题
查看>>
基于KMP与Levenshtein模糊匹配算法的银行联行号查询(转)
查看>>
BZOJ1303 中位数图
查看>>
生产者消费者模型
查看>>
Multi-level Contextual 3D Convolutional Neural Networks
查看>>
apidoc官网和github地址
查看>>
来到外企几天的感受
查看>>
<a>之间怎么放值</a> 挺简单的,第一次遇到···
查看>>