opencv0-opencv编程工具
来源:互联网 发布:vb编写程序代码 编辑:程序博客网 时间:2024/06/08 18:24
我用的是VS,所以对VS做了点功课,找了些资料,全当入门!
理解工程含义的基础
COM
COM(Component Object Model)组件对象模型是microsoft制定的一个组件软件标准,跟unix上的CORBA一样。凡是遵循COM标准开发出来的组件称为COM组件。目地是实现二进制方式的软件重用 。在windows平台上,COM的实现形式有DLL(进程内组件)和EXE(进程外组件)2种。
OLE
OLE(Object Linking and Embedding)对象连接与嵌入是微软的复合文档技术,可方便实现应用程序之间的通信。在后来的OLE2中才导入了 COM,提供了对COM的支持,利用这种技术可开发可重复使用的软件组件COM。OLE是软件比较早提出的一种技术。
ATL
ATL(Active Template Library)活动模板库是一套C++模板库,常用于开发COM程序和ActiveX程序。要理解ATL技术可从以下两方面理解:
1.ATL可以说是把COM封装了一下,象MFC一样做成一个库,并有一个向导,使COM应用开发尽可能地自动化、可视化,这就决定了ATL只面向COM开发提供支持。
2.ATL因其采用了特定的基本实现技术,摆脱了大量冗余代码,使用ATL开发出来的COM应用的代码简练高效。
在ATL产生以前,开发COM组件的方法主要有两种:一是使用COM SDK(COM软件开发包)直接开发COM组件,另一种方式是通过MFC提供的COM支持来实现。而现在 ATL已经成为Microsoft支持COM应用开发的主要开发工具。
MFC
MFC(Microsoft Foundation Classes)微软基础类是微软提供的一个用于Windows程序开发的基础类库。MFC以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
ActiveX
ActiveX是微软提出的一组使用COM技术使得软件组件在网络环境中进行交互的技术集,它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序,此外ActiveX一般具有界面。
ActiveX既包含服务器端技术,也包含客户端技术。其主要内容是:
1. ActiveX控制(ActiveX Control);用于向WEB页面、Microsoft Word等支持ActiveX的容器(Container)中插入COM对象。
2. ActiveX文档(ActiveX Document);用于在WEB Browser或者其它支持ActiveX的容器中浏览复合文档(非HTML文档),例如Microsoft Word文档,Microsoft Excel文档或者用户自定义的文档等。
3. ActiveX脚本描述(ActiveX Scripting);用于从客户端或者服务器端操纵ActiveX控制和Java程序,传递数据,协调它们之间的操作。
4. ActiveX服务器框架(ActiveX Server Framework);提供了一系列针对WEB服务器应用程序设计各个方面的函数及其封装类,诸如服务器过滤器、HTML数据流控制等。
5. 在Internet Explorer中内置Java虚拟机(Java Virtual Machine),从而使Java Applet能够在Internet Explorer上运行,并可以与ActiveX控制通过脚本描述语言进行通信。
各种工程结构
ALT
ALT Project
创建一个基于ATL的工程,用ATL的方式进行COM组件的开发,ATL提供了大量可重用的模板。ATL可用于COM组件的开发,也可用于ActiveX的开发。
CLR
Class Library
CLR Console Application
CLR Empty Project
Windows Forms Application
Windows Forms Control Library
CLR(Common Language Runtime)是公共语言运行库,和Java虚拟机一样也是一个运行时环境。CLR的核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步,可由面向CLR的所有语言使用。并保证应用和底层操作系统之间必要的分离。CLR/C++是托管的C++程序,数据和代码是由CLR管理的,调用方不用管内存的分配和释放,CLR好像常用于.net。
General
1Empty Project
2Custom Wizard
3Makefile Project
2就是用户自定义向导,什么意思呢?比如你每次建一个新的工程时都期望这个工程中有main.cpp、projectDescription.txt这两个文件,并且main.cpp中有一个默认的main函数。那么你可以建一个Custom Wizard工程,并配制好main.cpp、projectDescription.txt文件及所在目录结构;然后你每次创建一个新的工程时选择都基于这个已有的Custom Wizard工程,新建的工程就有自动添加main.cpp、projectDescription.txt文件了。说白了Custom Wizard就是一个模型,定义工程的默认文件和默认的配制。
3makefile就是对.cpp和.h等文件的组织、构建、编译规则。这个在跨平台开发中会用到,如你开发的程序既要在Windows下编译也要在Linux、Mac下编译,一般就会使用makefile的编译规则。说明:Windows下有一个微软自己的NMake构建器,因为在VS下makefile文件中的内容要符合NMake的规则才能够编译成功。
MFC
1MFC ActiveX Control
2MFC Application
3MFC DLL
1就是以支持MFC的方式创建ActiveX程序,可快速地开发带有界面的ActiveX程序。
拓展阅读《使用VS2010创建MFC ActiveX工程项目》.
2这个就是你平常开发MFC程序时会用到的工程, MFC(Microsoft Foundation Classes)是微软提供的一个用于Windows程序开发的基础类库,也是快速开发Windows上的桌面程序一般会选择的方式。
3它也是创建一个MFC的程序,与MFC Application的不同之处是:MFC Application工程生成的是一个.exe的可执行文件,而MFC DLL工程生成的是一个.dll的动态库文件。
Win32
1Win32 Console Application
2Win32 Project
1这个就是你最熟悉的控制台应用程序了,编译成功,运行时会出现一个黑色的命令行窗口。
2MFC其实是对Windows API进行的一种封闭,使其具有面向对象的特性。而这个Win32 Project工程就是以直接调用Windows API的方式,使用Windows SDK开发带有窗口界面的程序。
其实,像一般的开发常用的工程类型也就几种:
Win32Console Application: 控制台应用程序,也是常见的那个黑色命令窗口。
Win32Project: 直接用WindowsAPI进行Windows桌面应用程序的开发。
MFCApplication: MFC工程,用微软提供的类库进行界面程序的快速开发。
CVS:是一个用于代码版本控制的自由软件,它是一个比较早出现的工具,由于它有很多自身的缺陷,现在几乎被SVN所取代了。
**SVN:**SVN是Subversion的简称,它是集中式的版本控制系统。SVN继承了CVS的基本思想,包含了CVS的几乎所有功能。你可以认为SVN是CVS的升级版(但实际上它们完全是两个软件)。
**Git:**git是分布式的版本控制系统。相信玩过开源代码的都知道github吧,它就是一个基于git的代码托管平台。
Git与SVN的区别,大家可以参考这一篇。
http://blog.csdn.net/luoweifu/article/details/13094069
如果你遇到单个的项目,一般思路是;
按照接口从上往下梳理或按照数据库从下往上梳理。多思考两点------1、类、方法、函数之间的调用关系2、参数传递与变化
最后组成一个逻辑链:接口---类/方法/函数---数据库。
好啦!今天就这样吧!
- opencv0-opencv编程工具
- opencv0-入门必知
- opencv编程
- 【OpenCV】视频标注工具
- opencv截图工具
- 【OpenCV】视频标注工具
- 1.1.2-学习Opencv与MFC混合编程之---画图工具 画直线 画圆 画矩形
- 1.1.4-学习Opencv与MFC混合编程之---画图工具 画椭圆
- 1.1.7-学习Opencv与MFC混合编程之---为画图工具添加工具栏
- 编程工具
- 编程工具
- 编程工具
- 编程工具
- 编程工具
- 编程工具
- 编程工具
- 编程工具
- OpenCV 编程入门
- Java中的关键字 transient
- Longest Ordered Subsequence (dp)
- 【kong系列一】之 API网关 & kong 概述
- MySQL必知必会知识点总结一二
- linux 删除某些文件外的所有文件
- opencv0-opencv编程工具
- 第二章:2.1 微分方程、差分方程求解(举例)
- C++友元函数、友元类、友元成员函数
- windows版redis报错:本地计算机上的Redis服务启动后停止
- HDU
- 2 用python进行OpenCV实战之图像基本知识
- Matching In Multiplication HDU
- HTTP和TCP/IP
- VS 启动报错BadImageFormatException