vs2015 dll封装为ocx的过程

一、创建项目

1、新建MFC ActiveX控件项目

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

 3、生成ENP_ActiveXDLL项目

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

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

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

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

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

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

左图改为右图

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

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

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

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

猜你喜欢

转载自blog.csdn.net/lqyscg701429/article/details/84100103
今日推荐