• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > COM学习的一些疑问

COM学习的一些疑问

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了COM学习的一些疑问等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: COM学习的一些疑问
描述:

BOOL _stdcall DllMain(HINSTANCE hInstance,DWORD dwReason,LPVOID /*lpReserved*/)
{
return TRUE;
}
extern "C"
HRESULT _stdcall DllGetObject(REFCLSID rclsid,REFIID riid,LPVOID* ppv)
{
*ppv=static_cast<IStopwatch*>(new CStopwatch);
return S_OK;
}
这段代码中第一个函数最后的LPVOID/*.....*/是什么意思呢?应该是一个变量吧
而加了这个不是注释么
还有第二个函数那些形式参数能不能给出他们的定义,就是他们代码的类型或结构
我查MSDN,LPVOID是指向无类型的指针,那为什么不用void*呢
谢谢了


解决方案1:

1。
函数的某个形参不使用时可只注明参数的类型,这样可减少参数栈的尺寸。一般保留参数都这样写。
2。
REFCLSID :CLSID&
REFIID: IID&
CLSID和IID都是GUID,是一个128bit的大数据结构,由于一般这种类型的实参都是常量,所以一般都是用引用传值。
这些宏没什么特别的,都是COM和SDK里定义的,宏这东西要么是为了方便,要么是为了提高代码移植性。

解决方案2:

1. 把参数注释上了,说明这么参数不用
2. 定义far,是为了了和16位系统兼容,我们知道16位系统中,内存采用了分段和分页两种机制,far就是表示跨段。
而在32位系统中,采用了所谓的flat模式,段寄存器除了一个之外,别的值为零,far也就没有什么用处了。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-06-05 在vc中调用lib文件的问题
  • 2017-06-04 在com定义的BOOL类型属性,在vb中显示为long,为什么?
  • 2017-06-05 用关键字volatile来强制关闭系统的优化,让变量存取都在实际的内存中,来防止多线程内存共享出现
  • 2017-06-04 如果处理动态创建的ActiveX控件的消息响应???
  • 2017-06-04 如何为自己的编写ACTIVEX控件签名
  • 2017-06-04 IE插件死循环并能保证循环外的代码被执行
  • 2017-06-04 初学COM,请问谁有<<COM编程精彩实例>>光盘的代码提供?
  • 2017-06-05 [分享]DLL中的共享变量的误传
  • 2017-06-04 excel单元格的引用
  • 2017-06-05 怎么在子线程里面调用主线程的函数

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 使用AcitveX做一个button,如何添加热键?
    • windows核心编程15章中MemReset代码中的问题????
    • DLL调试问题!急啊~~大侠们!!
    • IGlobalInterfaceTable创建失败来帮帮忙哈
    • 我自己写的最简单的COM,为什么调试它时总出错?
    • 请教高手,如何给别的应用程序窗体设置标题栏急在线等!!!
    • 终极宇宙难题-----ActiveX在网页里的调用问题
    • 在win32平台下,hook的问题
    • 对cab文件我有个问题,如下:
    • 求助要在一个窗口显示多路视频该怎么做啊!

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有