到此我们OCX 控件制作就完成了。...⑨注册控件MyActiveX.ocx 1)用管理员身份运行”Windows命令处理程序”(命令提示符),转到MyActiveX.ocx文件所在目录下,为求简便,我将其移到了C盘的MyActiveX文件夹下...2.dir :查看当前目录下文件信息 3.regsvr32 xxx.ocx :装载控件 4.regsvr32 -u xxx.ocx :卸载控件 5.regedit :注册表编辑器(在第一个文件夹下的CLSID...目录下,有注册号信息) 注:ocx控件使用前一定要先卸载旧的。...注册命令:regsvr32 "E:\Clock.ocx" 反注册命令:regsvr32 /u "E:\Clock.ocx" 在此介绍两个实用工具: 工具一:RegDllView 功能:查看电脑中已注册的组件
comct232.ocx 6.0.98.39 comct332.ocx 6.7.0.9839 comctl32.ocx 6.0.98.39 comdlg32.ocx 6.1.98.40 dblist32....ocx 6.1.98.39 mci32.ocx 6.1.98.39 mscomct2.ocx 6.1.98.39 mscomctl.ocx 6.1.98.39 mscomm32.ocx 6.1.98.39...msdatgrd.ocx 6.1.98.39 msdatlst.ocx 6.1.98.39 msflxgrd.ocx 6.1.98.39 mshflxgd.ocx 6.1.98.39 msinet.ocx...vb40016.dll 4.0.24.22 vbrun100.dll vbrun200.dll 2.0.9.8 vbrun300.dll 3.0.5.3 msvbvm50.dll 5.2.82.4 atl70....dll 7.0.9975.0 atl71.dll 7.10.6119.0 mfc70.dll 7.0.9975.0 mfc70chs.dll 7.0.9975.0 mfc70cht.dll 7.0.9975.0
01 OCX开发总结 首先,使用ocx意味着,网站只支持windows!! MFC ActiveX和ATL C++ ocx开发,有ATL和MFC ActiveX两套框架。...二者的比较,简单说,MFC封装程度高,故MFC使得你很快完成你的工程并更快的运行起来,但是牺牲了灵活性;ATL更接近COM核心,轻量级。 如果ocx需要界面的话,如监控控件需要显示视频流。...如果很在意ocx控件大小的话,只能用ATL,因为MFC ActiveX是MFC项目——打入MFC库,不够轻量。...如若使用ocx的bool,推荐判false——都是0。...操作ocx接口的name属性 ocx.start()调用ocx接口的start方法 为什么param标签初始化ocx属性值不成功?!
ATL模板类库使用Thunk技术来实现与窗口消息相关联的HWND和负责处理消息的对象的this指针之间的映射。 ...ATL中窗口类注册时,窗口过程函数缺省值都是StartWindowProc,当创建窗口产生第一条消息时将调用此函数。
pvk xxx.pvk -pi PASSWORD -spc xxx.spc -pfx xxx.pfx -f [3]signtool sign /f AVIDM.pfx /p PASSWORD xxx.ocx
Active Template Library (ATL) A C++ template library used to create ActiveX servers and other Component...ActiveX controls created with ATL are generally smaller and faster than those created with the Microsoft...ATL and MFC can help implement COM features. MFC - Library/Framework used to build Win32 apps....ATL - Framework which helps building COM application....You dont need to use MFC, ATL or COM if you use .Net. .Net is much much more than this though.
atl窗体通过CComControlBase的内部变量控制,窗体属性,包括onsize事件对应的m_bRecomposeOnResize变量控制窗体变化事件响应。 2.可插入的控件 ?...axHost错误是因为,activex未设置插入属性(见2的设置) 4.atl中指针错误不会异常崩溃,可以通过vs的反汇编查询打印输出提示的异常地址得到具体错误点 ?...6.atl中自定义数据类型 typedef [v1_enum, helpstring("_WeekDay Enum")] enum _WeekDay { Sunday=0, Monday,...字符串 atl字符串使用BSTR,C++的封装类中_b_str,通过copy方法传出字符串到BSTR。...连接点需要atl创建过程中,使用项目支持“连接点”和IPropertyNotifySInk。连接点主要为创建回调函数,类似wcf的双工通信契约。创建成功后,控件本身会增加事件接口。
即便是经常被人批评,但是OCX,还是存在很多年了,在经后很多年,它都还将存在着。因为在有的环境下,简单的b/s开发技术是达不到需求的。比如访问硬件设备,比如安全防护。因此我们还要用到OCX的。...但是要想在正式的场合下,在WEB界面上用OCX,需要进行签名。否则很多时候浏览器会禁止加载OCX。同时还会无数的警告。
如果勾上,生成时会多出一个文件.lic , 只有拥有许可的用户才可以调用ocx插件。继续下一步。 ? ? 4.完成创建控件项目自动创建好MFC ActiveX程序框架。 ? ?...到此我们OCX 控件制作就完成了。
例如:笔者要注册 amovie.ocx 控件,则打入regsvr32 amovie.ocx即可, 要反注册它时只需使用 regsvr32 /u amovie.ocx就行了。...Regedit.exe注册表编辑程序,利用关键字进行搜索,然后把搜索得到后的注册表导出为REG注册表文件,再将其相应的ActiveX文件拷贝到Windows的System文件夹(一般ActiveX的文件名为OCX...OCX,DLL是扩展名。 Activex有两种扩展名OCX和DLL。实际上你可以把它们的扩展名字调换。COM作为ActiveX的更新技术,扩展名也有可能是DLL。
4.服务器的默认线程模型 [cpp] view plain copy #if defined(_ATL_SINGLE_THREADED) #if defined(_ATL_APARTMENT_THREADED...) #if defined(_ATL_SINGLE_THREADED) || defined(_ATL_FREE_THREADED) #pragma message ("More than one ...) #if defined(_ATL_SINGLE_THREADED) || defined(_ATL_APARTMENT_THREADED) #pragma message ("More than...经过了这么多层封装,ATL 已经把AddRef()和Release()所需要的操作全部实作出来了,可是ATL还是没有迈出最后的一步——没有把这些操作整合进AddRef()和 Release(),这是因为...ATL还要考虑聚合的因素。
问题:当ocx需要不断升级时,这种方法很痛苦,需要重新走一遍,老是清不干净。 方法二:用AxImp封装。(tlbimp封装无UI的ocx) 调用:vs2008在命令行下直接可以使用。aximp。...运行后对ocx封装,得到两个文件。在vs中引用。...当ocx升级并完成注册后,只要重新封装,覆盖相应的dll即可!!!
Directive file “,进入下一步, 在上图中选中”只创建压缩文件(ActiveX安装):Create compressed files only(ActiveX Installs)”,进入下一步把用到的OCX...按照图配置选项后,就连续点”下一步”,(说明:我第一次选择的OCX文件位于当前目录下,制作报错,然后,我将OCX文件复制到C盘的System32目录下,选择OCX文件时,也选择此目录下的LiteArrayCtrl.ocx
项目中用到了一个第三方的ie ocx控件,而经常遇到客户和测试小伙伴反馈相关功能无法正常使用,也没有友好提示。其实很多时候是插件未正常安装,或者是自定义安全级别设置有误。...考虑到这个问题,必须要有一个ie ocx控件的检查机制。 检查原理 创建ActiveXObject对象去检查ocx控件,如果创建成功,则代表插件安装正确,否则安装有误。...ocx插件在注册表的位置 于是我猜想,servername应该就是SDS_CMSCtrl.SDS_CMSCtrlCtrl.1。经测试,果不其然。...检查代码如下: try { const ocx = new ActiveXObject('SDS_CMSCtrl.SDS_CMSCtrlCtrl.1') console.log(ocx) } catch...ocx未安装的友好提示
ATL 提供了下列帮助您实现集合和枚举数的类。...template class ATL_NO_VTABLE CComEnumImpl : public...Base{} 和 template class ATL_NO_VTABLE...ATL 提供了ICollectionOnSTLImpl接口,使您能够在对象上快速实现基于标准模板库 (STL) 的集合接口。...long EnumeratorExposedType; // 定义枚举器复制策略方法 typedef ATL
ATL的QueryInterface调用追踪 a....::_ATL_INTMAP_ENTRY* WINAPI _GetEntries() throw() { / static const ATL::_ATL_INTMAP_ENTRY _entries...::_ATL_INTMAP_ENTRY* WINAPI _GetEntries() throw() { / static const ATL::_ATL_INTMAP_ENTRY _entries[... dw; _ATL_CREATORARGFUNC* pFunc; //NULL:end, 1:offset, n:ptr }; _ATL_CREATORARGFUNC函数类型的定义 [...* (WINAPI *pFunc)() = (const _ATL_INTMAP_ENTRY* (WINAPI *)())dw; const _ATL_INTMAP_ENTRY *pEntries
将ocx文件以及第三方dll文件打包成cab文件: Internet 软件分发单位是“软件包”,它由包含.INF文件或软件分发.OSD文件(或两者都包括)的.CAB文件所组成。...一个分发单位也可以包含软件组件, 如 ActiveX 控件(.OCX)、.DLL文件、.EXE文件、Java类文件或小程序。...INF文件是一个文本文件,指定运行控件所需要下载或者呈交的文件(比如.DLL或者其它.OCX)。一个.INF文件就捆绑了. CAB压缩文件所有的必须文件。...$” AdvancedINF=2.0 [Add.Code] pcpos.ocx=pcpos.ocx Comm.dll=comm.dll [pcpos.ocx] file-win32-x86=...3) 点击Add,文件添加(pcpos.ocx,pcpos.dll,comm.dll,tcpclnt.dll),点击下一步。
还要考虑各种缓冲的释放,各种对象的关闭,程序员的大量精力都浪费在无用的事情上,针对这些情况微软在OLEDB上提供了两种封装方式,一种是将其封装在ATL模板库中,一种是使用ActiveX控件来进行封装称之为...ADO,这次主要写的是这两种方式 ATL 模板中的OLEDB 由于ATL模板是开源的,这种方式封装简洁,调试简易(毕竟源代码都给你了),各个模块相对独立,但是它的缺点很明显就是使用门槛相对较高,只有对...这里主要说的是消费者模块 ATL主要封装的类 ATL针对OLEDB封装的主要有这么几个重要的类: 数据库对象 CDataConnection 数据源连接类主要实现的是数据库的连接相关的功能,根据这个可以猜测出来它实际上封装的是...并选择其中的ATL OLEDB使用者 ?...所以在我看来使用ATL还不如自己根据项目封装一套。 好在微软实在太为开发者着想了,又提供了ADO这种针对ActiveX的封装方式。
2.ATL对TearOff的内部组件的支持 tear-off接口是按需暴露的接口,但主类并不真正地从它继承。...ATL类实现tear-off接口时,使用CComTearOffObjectBase作为它们的基类,而不是CComObjectRootEx,其实CComTearOffObjectBase就是从CComObjectRootEx...对TearOff的外部组件(拥有者组件)的支持 ATL通过下面两个宏实现对tear-off外部组件的支持 #define COM_INTERFACE_ENTRY_TEAR_OFF(iid, x)/... {&iid,/ (DWORD_PTR)&ATL::_CComCreatorData</ ATL::CComInternalCreatorATL::CComTearOffObject...::_CComCacheData</ ATL::CComCreatorATL::CComCachedTearOffObject >,/ (DWORD_PTR
ATL对聚合的内部组件的支持 ATL通过CComCreator2模板类以及和聚合相关的宏来支持聚合。...::CComCreator2ATL::CComCreatorATL::CComObject >, ATL::CComFailCreator...ATL::CComObject >, ATL::CComCreatorATL::CComAggObject > > _CreatorClass; #define DECLARE_ONLY_AGGREGATABLE...(x) public:/ typedef ATL::CComCreator2ATL::CComFailCreator, ATL::CComCreatorATL::CComAggObject...3.ATL对聚合的外部组件的支持 ATL通过以下的宏来支持外部组件聚合其他组件的接口。
领取专属 10元无门槛券
手把手带您无忧上云