您的位置:首页 > 其它

制作OCX控件简单流程

2013-11-22 19:47 417 查看
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 Files\Microsoft Visual Studio 9.0\Samples\2052下有个叫AllVCLanguageSamples.zip的文件,解压后里面 D:\Program Files\Microsoft Visual Studio
9.0\Samples\2052\AllVCLanguageSamples\C++\MFC\ole\TstCon,打开该文件夹下的项目,生成后,将其添加进VS;具体操作方法是:在VS里面,工具——》外部工具,将刚刚生成的文件插入,输入我们要插入的插件的名称(可以任意取名),命令为刚刚生成的应用程序的路径,注意:必须加上文件的名字。



2、还有一种验证方法为建立一个网站项目,在项目里面加入前面建立的空间项目的ID号,id号的位置如图:



注5:在上面的控件生成之后其实是还不能实用的,常坐的是需要将xxx.ocx以及xxx.dll打成CAB包 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: