zoukankan      html  css  js  c++  java
  • 制作OCX控件简单流程

    1、项目创建流程:文件——》新建——》项目,选择MFC项目——》MFC控件,输入项目名称,然后确定,所有属性选项默认,如下图所示。

     å¾ç

    2、在刚刚新建的项目中添加方法,首先在类视图中找到_DActiveX_OCX

    å¾ç

    3、右键 刚刚找到的_DActiveX_OCX,添加一个名叫AddFun方法,还有两个参数a1,a2,参数类型为LONG型,其余属性默认

    å¾ç

    3、进入解决方案资源管理自器栏,进行具体方法的描述,找到ActiveX_OCXCtrl.cpp文件

    å¾ç

    4、进入ActiveX_OCXCtrl.cpp文件,对刚刚新增添的方法进行描述,这里简单添加一个a1 + a2的加法算式。
    å¾ç 
    5、编译,生成OCX控件,然后注册,注册命令regsvr32 + 所生成的文件的目录/xxx.ocx,反注册为regsvr32  /u + 所生成的文件的目录/xxx.ocx
     6、我擦,本机装的VS2008有问题,居然不能生成控件,主要是在生成过程中注册不了
    注1:在编译过程中可能会出现LNK2001、LNK2005、和LNK2019错误,这几个错误可能是由于几个原因引起:
    1 、变量或方法只申明了,但没有定义;
    2、在头文件中定义了一个变量或方法之后,多个cpp文件中引用到该头文件,导致该变量或方法被多次定义 ;
    3、引用的某个方法没有具体实现;
    注2: 编译时提示:1>Project : error PRJ0050: 未能注册输出。请尝试启用“每个用户的重定向”,或者用提升的权限从命令提示窗口中注册该组件。
    该问题主要是最主要的可能是由于库文件(.lib或者.dll)的缺失,解决方法是用软件dependency walker,打开已经生成但有问题的xxx.ocx文件,软件会显示缺失了什么库文件。当然该问题还可能是由于项目设置有问题引起,但可能性很小。
    注3:使用静态库可以编译通过,但注册时提示系统不兼容或者文件为无效的二进制文件,问题未解决; 
    注4:当控件被注册后,可以通过多种方法验证,如:
    1、用VS自带的工具,VS2006后的版本,该插件没有,但可以在安装VS的目录下找到sample文件,如D:Program FilesMicrosoft Visual Studio 9.0Samples2052下有个叫AllVCLanguageSamples.zip的文件,解压后里面 D:Program FilesMicrosoft Visual Studio 9.0Samples2052AllVCLanguageSamplesC++MFColeTstCon,打开该文件夹下的项目,生成后,将其添加进VS;具体操作方法是:在VS里面,工具——》外部工具,将刚刚生成的文件插入,输入我们要插入的插件的名称(可以任意取名),命令为刚刚生成的应用程序的路径,注意:必须加上文件的名字。

    å¾ç

    2、还有一种验证方法为建立一个网站项目,在项目里面加入前面建立的空间项目的ID号,id号的位置如图:
    å¾ç
    注5:在上面的控件生成之后其实是还不能实用的,常坐的是需要将xxx.ocx以及xxx.dll打成CAB包 

  • 相关阅读:
    git 操作
    vim使用指北 ---- Multiple Windows in Vim
    Unity 异步网络方案 IOCP Socket + ThreadSafe Queue
    unity 四元数, 两行等价的代码
    golang的项目结构 相关知识
    stencil in unity3d
    一段tcl代码
    16_游戏编程模式ServiceLocator 服务定位
    15_游戏编程模式EventQueue
    14_ Component 游戏开发组件模式
  • 原文地址:https://www.cnblogs.com/SunkingYang/p/11049256.html
Copyright © 2011-2022 走看看