vs2015 dll封装为ocx的过程

一、创建项目

1、新建MFC ActiveX控件项目

vs2015 dll封装为ocx的过程_第1张图片

2、点击下一步,直到完成

vs2015 dll封装为ocx的过程_第2张图片

 3、生成ENP_ActiveXDLL项目

vs2015 dll封装为ocx的过程_第3张图片

其中ENP_ActiveXDLLCtrl.cpp是写接口的主要功能部分;ENP_ActiveXDLL.idl中定义了之后注册ocx后,调用ocx所需要的重要的clsid,这一id在注册表中也可以找到。

vs2015 dll封装为ocx的过程_第4张图片

二、添加与dll相对应的对外接口

1、点击视图->类视图 ->ENP_ActiveXDLLLib->右击_DENP_ActiveXDLL,添加->添加方法

vs2015 dll封装为ocx的过程_第5张图片

2、打开添加方法向导,根据DLL方法,写出对应返回类型和参数类型。

例:调用dll中typedef int(CALLBACK* _SignIn)(char* DealNum, char* BatchNum);在ocx中传入参数与char*对应的是BSTR,如果使用CHAR*,则js没有相对应的类型,在js调用传参中,String与ocx的BSTR对应。另外,传出参数如果是字符串,最好直接将传出字符串通过返回参数返回。

vs2015 dll封装为ocx的过程_第6张图片

3、修改ENP_ActiveXDLLCtrl.h中的调度和时间ID的枚举enum部分,以解决ENP_ActiveXDLLCtrl.cpp中的红线错误

vs2015 dll封装为ocx的过程_第7张图片

 

vs2015 dll封装为ocx的过程_第8张图片

 

 

左图改为右图

 

 

 

 

 

4、在ENP_ActiveXDLLCtrl.cpp中的show函数中写出相应的功能代码,以调用dll中签到接口为例

1)将ocx依赖的所有dll放入Release文件中,使用动态调用dll的方式;

2)添加如下图代码到show()中

vs2015 dll封装为ocx的过程_第9张图片

 红色框是dll调用方法,蓝色框中ConvertStringToBSTR()是char*转化为BSTR的函数,需要添加#include 头文件。

你可能感兴趣的:(dll)