- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ActiveX控件完全教程
参考网站:/bkhtml/2008-07/57652.htm
用VC++开发ActiveX 控件完全教程(二)假设需求如下:底层是一个数学运算库DLL,中间是ActiveX控件(它调用底层的数学运算库DLL来完成控制层),界面层在测试时可以是一个exe程序,最后发布到IE浏览器上测试。 ?? ?? ?? ??数学运算库DLL的开发 ?? ?? 新建一个Win32 DLL项目,加入一个头文件MyNum.h,在其中声明所有的数学函数(为简单起见,本文只考虑加法运算),代码如下: ?? ??#ifndef MY_NUM_H ??#define MY_NUM_H ??int __stdcall AddNum(int,int); ??#endif ?? ??请注意这里的方法声明为__stdcall,而VC++默认的是__cdecl,由于组件的语言无关性要求调用和被调双方必须在函数调用的约定上一致,因此在后面加载DLL并获取此方法时也要求和你的声明一致。 ?? ?? 为了简单起见,加法方法的实现就放倒DLL入口点所在文件,代码如下: ?? ??// NumDLL.cpp : 定义DLL 应用程序的入口点。 ??// ??#include stdafx.h ??#include MyNum.h ?? ??#ifdef _MANAGED ??#pragma managed(push, off) ??#endif ?? ??int __stdcall AddNum(int Num1,int Num2) ??{ ?? return Num1+Num2; ??} ??BOOL APIENTRY DllMain( HMODULE hModule, ?? Dword ul_reason_for_call, ?? LPVOID lpReserved ?? ) ??{ ?? return TRUE; ??} ?? ??#ifdef _MANAGED ??#pragma managed(pop) ??#endif ?? ?? 为了能在其他程序中显示链接此DLL,我们为它加入一个.def文件,命名为NumDLL.def,列出此DLL导出的方法名称: ?? ??LIBRARY NumDLL ??EXPORTS ?? AddNum ?? ??至此我们的数学运算函数库DLL就完成了。 ?? ??用ATL开发ActiveX控件 ?? ?? 开发ActiveX控件有两种方式,一是MFC,二是ATL,而后者是专门用于COM组件开发,因此更适合于ActiveX。因此这里选择后者,前者的开发示例参考我这篇文章(用VC++开发ActiveX 控件完全教程(一))。 ?? ?? 新建一个ATL项目,命名为”FuckATL”,接受默认设置。右键项目名,添加一个”ATL简单对象“,命名为CaluNumCtrl,点击下一步进入组件选项设置界面。 ?? ?? 修改类的头文件CaluNumCtrl.h如下: ?? ??class ATL_NO_VTABLE CCaluNumCtrl : ?? public CComObjectRootExCComSingleThreadModel, ?? public CComCoClassCCaluNumCtrl, CLSID_CaluNumCtrl, ?? public ISupportErrorInfo, ?? public IConnectionPointContainerImplCCaluNumCtrl, ?? public CProxy_ICaluNumCtrlEventsCCaluNumCtrl, ?? public IObjectWithSiteImplCCaluNumCtrl, ?? public IDispatchImplICaluNumCtrl, IID_ICaluNumCtrl, LIBID_FuckATLLib, /**//*wMajor =*/ 1, /**//*wMinor =*/ 0 ??{ ??public: ?? typedef int (__stdcall*PtrAddNum)(int,int); ?? PtrAddNum MyAddNum; ?? CCaluNumCtrl() ?? { ?? //加载数学运算库DLL ?? handle = ::LoadLibrary(_T(D:\\dyk\\work\\NumDLL\\debug\\NumDLL.dll)); ?? if (handle == NULL) ?? { ?? DWORD e = GetLastError(
您可能关注的文档
- (无水印)《飞机维修表面工程学》辅导提纲.doc
- --01安装【远程桌面会话主机】循序渐进指南.docx
- -基于IP和CATV双网融合的视频点播系统.doc
- 006CDMA通信原理.doc
- (毕业论文)自动洗衣机行星齿轮减速器的设计.doc
- (齿轮和轴齿)齿轮类通用检验指导书.doc
- 01-02《机械原理》教学大纲V3.doc
- 03-哈工大机械原理大作业任务书-齿轮机构参考模板.docx
- (自freemind)GRE和机器学习.doc
- 008-山东27-CDMA系统掉话问题浅析.doc
- 2024-2025学年高中英语高二上册牛津上海版(试用本)教学设计合集.docx
- 2024-2025学年小学地方、校本课程黑教版生命教育教学设计合集.docx
- 2024-2025学年小学科学一年级上册(2024)冀人版(2024)教学设计合集.docx
- 2024-2025学年高中化学选修3 物质结构与性质人教版教学设计合集.docx
- 2024-2025学年高中化学必修第二册沪科版(2020)教学设计合集.docx
- 2024-2025学年初中信息技术(信息科技)初中一年级(下册)教科版(云南)教学设计合集.docx
- 2024-2025学年小学科学一年级下册粤教粤科版(2017秋)教学设计合集.docx
- 2024-2025学年高中物理选择性必修第一册沪科版(2020·上海专用)教学设计合集.docx
- 2024-2025学年初中信息技术(信息科技)八年级上册科学版(2018)教学设计合集.docx
- 2024-2025学年初中英语六年级上册牛津上海(试用本)教学设计合集.docx
最近下载
- GB∕T 22670-2018 变频器供电三相笼型感应电动机试验方法(高清版).pdf
- 2023年广东茂名信宜市村(社区)后备干部选聘225人笔试历年难易错点考题荟萃附带答案详解.docx VIP
- DB31╱831-2014 镀膜玻璃单位产品能源消耗限额.pdf VIP
- DB11_T 854-2023 占道作业交通安全设施设置技术要求.docx
- 房屋建筑安全专项施工专业技术方案.doc VIP
- 生猪屠宰兽医卫生检验人员理论考试题库及答案.docx
- 学习材料:纪检监察案件审理工作培训资料三套合辑.docx VIP
- GB+40879-2021数据中心能效限定值及能效等级.docx VIP
- 2015年关于平安渔业创建活动的汇报.doc
- 初中七年级英语翻译专项集中训练100题(含参考答案).pdf VIP
文档评论(0)