将dll封装成ocx说明文档.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将DLL封装成OCX 说明文档 封装工具 使用Visual C++ 6.0对dll文件进行封装。 封装方法 可使用静态调用dll和动态调用dll两种方法调用dll,然后封装各接口函数。 静态调用的前提条件是:厂家提供dll和相关的库文件(.lib)以及头文件(.h)。 动态调用的前提条件是:厂家只提供dll文件 封装过程 3.1 动态调用dll封装(以封装浩宁达读写卡dll为例) 3.1.1创建项目 1、打开Visual C++ 6.0,单击file→new单击Project选项卡,选择,弹出如下对话框: 2、输入项目名,单击,出现如下对话框。 单击完成创建一个控件。 3.1.2 创建接口函数 单击菜单栏上的“查看”,选择菜单,选择Automation选项卡,弹出如下对话框: 单击Add Method按钮,弹出如下对话框: 在第一个文本框里面输入想要加入的方法名,第三个下拉选框里面选择方法的返回类型。在下面的Parameter list列表框里可以加入该方法要带的参数和参数类型,如果参数要回调,则要选择带指针的类型;单击Edit Code按钮可以开始编写方法。 注:参数类型的选择不多,对于dll中提供的函数参数要挑选适当的类型,然后在接口函数中将其转换为dll函数的参数类型。 3.1.3 编辑接口函数 主要编辑“项目名Ctl.app”中的内容。下面以封装浩宁达提供的卡表操作动态库文件中的读卡函数Read_card为例说明如何封装dll文件。 dll中Read_Card函数: __stdcall long Read_Card(HANDLE AHandle, long Port, struct rcStruct *rcS, char *User_ID, char *Comm_ID, char *CycleDisplay, char *MRData); ocx中封装的函数 a、定义Read_Card函数 typedef long (CALLBACK* RCard)(long, long, struct rcStruct*FAR,char*FAR,char*FAR,char*FAR,char*FAR); b、定义自定义的结构体 //读卡结构体(参数) #pragma pack( push, 1 ) struct rcStruct{ //以下标识数据项不管插没插表都必须返回 long Work_ID; //厂商代码(最大2位十进制数字) long Prog_ID; //表型代码(最大2位十进制数字) long Card_ID; //卡型代码(最大2位十进制数字) long Office_ID; //各供电局的地区代码 //如果没有插表,返回以下参数数据 long Far_ID; //远抄表号。 long Meter_Const; //表常数 long WarnDL1; //一级报警电量(金额) long WarnDL2; //二级报警电量(金额) long Max_HoardDL; //最大囤积电量(金额) long Max_OverDL; //最大透支电量(金额) double Max_Load; //最大负荷(千瓦) long PTCT; //倍率 long CBDay; //自动抄表日 long XLDTSJ; //需量递推时间 long Loadwarndelay; //超负荷报警延时 double Price_J; //尖单价 double Price_F; //峰单价 double Price_P; //平单价 double Price_G; //谷单价 double SaleDL; //购电量(金额) long Sale_Num; //购电次数(购电次数从1起) //如果插表,返回以下抄表数据 double OverZeroDL_M; //过零电量 double RemainDL_M; //剩余电量 long Sale_Num_M; //表内购电次数(购电次数从1起)。 double Power_Z_M; //总用电量 double Power_J_M; //尖用电量 double Power_F_M; //峰用电量 double Power_P_M; //平用电量 double Power_G_M; //谷用电量 long Read_Year_M; //抄表日期的年 long Read_Mon_M; //抄表日期的月 long Read_Day_M; //抄表日期的日 long Read_Hour_M; //抄表日期的时 long Read_Minute_M; /

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档