原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/51374200

最近项目中利用ocx封装了底层视频播放及处理的控件,以供c#和web调用。对ocx的属性、方法和事件刚入门,对ocx上控件和容器的参数传递和数据交互等问题,纠结了很久,虽然最终项目上的问题都解决了,但是对ocx的自定义消息还是搞不定。写几篇ocx入门的博文,记录一下。
        IDE:vs2010,64位win7系统。 
        关于c++开发ocx讲解详细的博文:http://blog.csdn.net/frankiewang008/article/details/7890032。里面关于ocx属性、方法和事件讲的非常详细。具体的添加属性,事件就不写了,直接贴个截图和完整的demo例子,以备以后忘记。这里只是简单记录一下学习过程,ocx都是基于mfc的,首先测试了一下vc++深入详解中的时间控件例子。代码下载c++深入详解中的ocx时间控件 测试时间控件:测试时间控件的c++代码
           1.ocx的调试:vs自带的TstCon.exe(在D:\Program Files (x86)\Microsoft Visual Studio10.0\Samples\2052\VC2010Samples\C++\MFC\ole\TstCon\Debug下,没有的话编译一下工程,就会生成) 。或者直接在c++、c#、web容器下测试
           2.ocx的添加属性、方法、事件和消息的位置,新手注意。
           
        3.ocx生成后的注册:vs2010下生成ocx后会自动注册,如果没有注册,可利用win自带的regsvr32进行注册或反注册。
如:注册:regsvr32 C:\Users\Administrator\Desktop\博客\My_ocx1\Release\My_ocx1.ocx
     反注册: regsvr32 C:\Users\Administrator\Desktop\博客\My_ocx1\Release\My_ocx1.ocx  /u
     注意:
       1.实际项目开发中要考虑ocx需要的dll或其他文件,把生成ocx的相关dll和配置文件放在一个路径下注册,否则可能会失败
       2.要考虑win下32位还是64位系统,最好把ocx和相关dll等放在在系统目录下。
      32位系统目录:C:\Windows\System32
      64位系统目录:C:\Windows\SysWOW64
      3.实际中可能还需要以管理员方式运行cmd。
       
        4.ocx控件在c++/c#中的添加
    
5.简单测试
 

c++开发ocx入门实践一的更多相关文章

  1. c++开发ocx入门实践三--基于opencv的简易视频播发器ocx

    原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/51404649  利用opencv做了个简易的视频播放器的ocx,可以在c++/c#/web ...

  2. c++开发ocx入门实践二

    原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/51374355         IDE:vs2010,c++,测试工具,vs自带的TstCo ...

  3. c++开发ocx入门实践四

    总结一下参数传递和方法调用的方法,ocx和容器进行参数传递,包括ocx和js,ocx和c++,ocx和c#.

  4. sass、less和stylus的安装使用和入门实践

    刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用c ...

  5. iOS 非ARC基本内存管理系列 -手把手教你ARC——iOS/Mac开发ARC入门和使用(转)

    手把手教你ARC——iOS/Mac开发ARC入门和使用 Revolution of Objective-c 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流 ...

  6. 【转】iOS 开发怎么入门?

    原文网址:http://www.zhihu.com/question/20264108 iOS 开发怎么入门? 请问有设计模式.内存管理方面的资料吗?最好有除了官方文档之外的其它内容,10 条评论 分 ...

  7. Django入门实践(二)

    Django入门实践(二) Django模板简单实例 上篇中将html写在了views中,这种混合方式(指Template和views混在一起)不适合大型开发,而且代码不易管理和维护,下面就用Djan ...

  8. C++ 开发OCX 的方法和注意事项

    C++ 开发OCX 的方法和注意事项 前言 ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件.ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精 ...

  9. 20162330 实验三 《敏捷开发与XP实践》 实验报告

    2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验三 <敏捷开发与XP实践> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1623班 ...

随机推荐

  1. python全栈开发_day11_作用域,函数嵌套和闭包

    一:作用域 1)什么是作用域 作用域是规定一个变量可以作用的范围,运行和销毁的范围 2)作用域的分类 1.内置作用域built_in:随着解释器的运行而产生,解释器运行的终止而销毁. 2.全局作用域g ...

  2. 进阶篇:5.1)极值法(Worst Case ,WC)

    本章目的:了解极值法,运用极值法: 1.极值法定义 极值法(WC,Worse Case):极值法是考虑零件尺寸最不利的情况,通过尺寸链中尺寸的最大值或最小值来计算关键尺寸的值: 计算公式: 2.极值法 ...

  3. request.upload.addEventListener in not a function。

    本人在使用vue开发一套后台系统时,碰到了一个上传文件的需求,因为平时做的上传是使用ajax的方式来进行上传. 现在是使用axios来进行上传,方式没有什么改变: npm i  axios  直接上 ...

  4. mysql出现 Unknown column 'bname' in 'where clause'和Unknown column 'bid' in 'field list'

    在用mysql数据库建表和修改数据库数据时,出现  Unknown column 'bname' in 'where clause'和Unknown column 'bid' in 'field li ...

  5. vue 路由更新页面视图未更新问题

    最近项目做面包屑的时候遇到一个问题就是路由变化的时候页面视图并没有发生变化,后来上网查,发现是vue-router的特性导致的. vue-router的切换不同于传统的页面的切换.路由之间的切换,其实 ...

  6. 微服务~Consul服务注册与发现

    服务发现是基于微服务架构的关键原则之一.尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱.Consul通过HTTP API和DNS提供服务发现服务.Spring Cloud Consul利 ...

  7. 带有权重的服务器SLB的实现

    1)参考了网络上的算法,但是那个算法仅仅是用于展示“权重轮循”的意图,在真正的网络下,因为是并行的,所以不可能单纯一个简单的循环可以解决问题. 2)用lock的话性能显然有损失. 3)想了一阵,结合C ...

  8. Netbeans8的中文乱码

    Netbeans8的中文乱码 前提: 不是编码的问题,统一改成UTF-8,之后文字还是显示方块.使用以下方式解决: 菜单 -> 工具 -> 选项 -> 字体和颜色 -> 语法 ...

  9. Git命令基本操作备忘

    创建Git仓库并上传到远程Git仓库 git init git config user.name "显示的名称" git config user.email "EMAIL ...

  10. Redis云端架构深入浅出

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB 发表于云+社区专栏 作者介绍:邹鹏,腾讯云数据库Redis产品负责人,多年数据库.网络安全研发经验. ...