
C/C++编程知识
彬彬在线
资料仅供分享,与大家研究,谢谢您的关注。
展开
-
C语言 第七章 高级数据类型(3):位运算符和位域
四、位域3.1 位运算符 所有的数据在计算机内都是用位序列来表达的,每一位的值为0或为1。如值65535即11111111 11111111;255即00000000 11111111。大多数系统,连续的8位构成一个字节。字节(byte)是一个char类型变量的标准存储单位。位运算符用来操作整数操作数的位,整数操作数的类型包括有符号(signed)和无符号(unsigne原创 2008-12-29 16:53:00 · 1859 阅读 · 0 评论 -
c语言运算符号优先级别
1级优先级 左结合 () 圆括号 [] 下标运算符 -> 指向结构体成员运算符 . 结构体成员运算符 2级优先级 右结合 ! 逻辑非运算符 ~ 按位取反运算符 ++ 自增运算符 -- 自减运算符 - 负号运算符 (类型) 类型转换运算符 * 指针运算符 & 地址与运算符 sizeof 长度原创 2008-12-29 16:54:00 · 15779 阅读 · 3 评论 -
C语言中的位运算
在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。 位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 >> 右移原创 2008-12-29 16:47:00 · 821 阅读 · 0 评论 -
DCT快速变换
下载源代码一、引言 DCT变换是数字图像处理中重要的变换,很多重要的图像算法、图像应用都是基于DCT变换的,如JPEG图像编码方式。对于大尺寸的二维数值矩阵,倘若采用普通的DCT变换来进行,其所花费的时间将是让人难以忍受甚至无法达到实用。而要克服这一难点,DCT变换的快速算法无非是非常吸引人的。就目前而言,DCT变换的快速算法无非有以下两种方式:1.由于FFT算法的普便采用,直接利用原创 2009-01-07 16:49:00 · 2410 阅读 · 0 评论 -
DCT快速变换
下载源代码一、引言DCT变换是数字图像处理中重要的变换,很多重要的图像算法、图像应用都是基于DCT变换的,如JPEG图像编码方式。对于大尺寸的二维数值矩阵,倘若采用普通的DCT变换来进行,其所花费的时间将是让人难以忍受甚至无法达到实用。而要克服这一难点,DCT变换的快速算法无非是非常吸引人的。就目前而言,DCT变换的快速算法无非有以下两种方式:1.由于FFT算法的普便采用,直接利用原创 2009-01-07 16:54:00 · 1437 阅读 · 0 评论 -
量化
量化 (英语:Quantization) 1.定义 所谓量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。 2.量化的分类 2.1 均匀量化和非均匀量化 按照量化级的划分方式分,有均匀量化和非均匀量化。 均匀量化:ADC输入动态范围被均匀地划分为2^n份。 非均匀量化:ADC输入动态范围的划原创 2009-01-07 16:59:00 · 3338 阅读 · 1 评论 -
游程长度编码
游程长度编码 图1:原始栅格数据游程编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码。对于二值图有效。 行程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号(连续符号构成了一段连续的“行程”。行程编码因此而得名),使符号长度少于原始数据的长度。 例如:5555557777733322221111111 行程编码为:(5,6)(7,5)(3,原创 2009-01-07 17:03:00 · 21675 阅读 · 1 评论 -
浅谈 TWAIN 标准
浅谈 TWAIN 标准文 倪志权如果你是一个扫描仪用户,你可能会为说明书中出现的“TWAIN标准”字样而困惑,什么是TWAIN呢?本文希望通过对TWAIN标准的一些介绍,起到抛砖引玉的作用,对大家使用扫描仪有所帮助。 一、什么是TWAINTWAIN组织成立于1990年,是由Aldus、Caere、Kodak、HP、Logitech、Adobe、Howtek和Software原创 2009-02-03 16:51:00 · 4422 阅读 · 0 评论 -
TWAIN 操作教程
一、TWAIN的文件组成TWAIN共包括4个二进制文件。如果要使用该接口,就必须要保证他们被成功地安装在本地计算机上。 文 件 名说 明TWAIN_32.DLL32位应用程序的支持文件,32位程序使用TWAIN通讯必须使用该文件。TWAIN.DLL原创 2009-02-03 16:56:00 · 5199 阅读 · 2 评论 -
UpdateData
UpdateData() MFC的窗口函数,下面是MSDN的说明; Call this member function to initialize data in a dialog box, or to retrieve and validate dialog data. BOOL UpdateData( BOOL bSaveAndValidate = TRUE );P原创 2009-02-05 13:18:00 · 985 阅读 · 0 评论 -
从 TWAIN 设备中扫描图像
一、简介TWAIN 数据源管理程序 (DSM) 工业标准的软件库,用于从静态图像设备提取图像。绝大部分的扫描仪和数码相机都提供了 TWAIN 驱动程序,利用统一的 TWAIN 接口,应用程序可以非常方便地从这些设备中获取图像。二、使用步骤互联网上关于 TWAIN 编程的中文资料很少,代码更是难找到,因为我不得不仔细阅读了 http://www.twain.org/ 提供的 TWAI原创 2009-02-05 17:22:00 · 3692 阅读 · 3 评论 -
接触VC之一:WinSDK
接触VC之一:WinSDK作者:释雪 预设目录:第一部分:WinSDK第二部分:MFC类基础,C++程序编写规范介绍第三部分:MFC基于对话框程序第四部分:Dll动态链接库第五部分:COM组件基础第六部分:COM组件几个常用技术:IDispatch,可连接对象.第七部分:COM组件的应用,以及MFC的COM编写第一部分:WinSDK 学习VC已近一年了,回顾我的原创 2008-12-02 10:27:00 · 947 阅读 · 0 评论 -
上位机
上位机是指:人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般模拟量),转化成数字信号反馈给上位机。简言之如此,真实情况千差万别不离其宗。上下位机都需要编程,都有专门的开发原创 2009-02-13 13:30:00 · 1383 阅读 · 0 评论 -
CString ,BSTR ,LPCTSTR之间关系和区别
关于VC的字符串(一)CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。typedef OLECHAR FAR* BSTR;typedef const char * LPCTSTR;vc++中各种字符原创 2009-02-11 15:12:00 · 1957 阅读 · 0 评论 -
VC字符串
Visual C++.NET涉及到ATL/ATL Server、MFC和托管C++等多种编程方式,不仅功能强大而且应用广泛。在编程中,我们常常会遇到ANSI、Unicode以及BSTR不同编码类 型的字符串转换操作。本文先介绍基本字符串类型,然后说明相关的类,如CComBSTR、_bstr_t、CStringT等,最后讨论它们的转换方法, 其中还包括使用最新ATL7.0的转换类和宏,如CA2CT、原创 2009-02-11 15:41:00 · 1181 阅读 · 0 评论 -
JPEG格式(JPEG File Interchange Format)
JPEG File Interchange FormatVersion 1.02September 1, 1992 Eric Hamilton C-Cube Microsystems 1778 McCarthy Blvd.原创 2008-12-08 14:18:00 · 3895 阅读 · 0 评论 -
缓冲区溢出的原理和实践(Phrack)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Smashing The Stack For Fun And Profit 以娱乐和牟利为目的践踏堆栈 (缓冲区溢出的原理和实践) XXXXXX原创 2009-02-19 16:35:00 · 1378 阅读 · 0 评论 -
GDB使用手册
简述 一 列文件清单 二:执行程序 三:显示数据 四:断点(breakpoint) 五.断点的管理 六.变量的检查和赋值 七. 单步执行 八.函数的调用 九.机器语言工具 十.信号 GDB的使用方法 简述一 列文件清单List(gdb) list line1,line2原创 2009-02-19 16:34:00 · 1024 阅读 · 0 评论 -
我所收藏的重点大学BBS资源
饮水思源(上海交通大学)人工智能 http://bbs.sjtu.edu.cn/bbsdoc,board,AI.html图形图像http://bbs.sjtu.edu.cn/bbsdoc,board,graphics.html 海纳百川(浙江大学)人工智能http://bbs.zju.edu.cn/cgi-bin/bbsdoc?board=AI图形图像http://bbs.原创 2009-02-25 11:05:00 · 2000 阅读 · 0 评论 -
FFMpeg框架代码阅读
FFmpeg主目录下主要有libavcodec、libavformat和libavutil等子目录。其中libavcodec用于存放各个encode/decode模块,libavformat用于存放muxer/demuxer模块,libavutil用于存放内存操作等常用模块。以flash movie的flv文件格式为例, muxer/demuxer的flvenc.c和flvdec.c文件在liba原创 2009-02-26 14:15:00 · 1703 阅读 · 0 评论 -
如何替换HBITMAP中的颜色值
#define COLORREF2RGB(Color) (Color & 0xff00) | ((Color >> 16) & 0xff) / | ((Color << 16) & 0xff0000) HBITMAP ReplaceColor (HBITMAP hBmp,COLORREF原创 2009-02-26 17:18:00 · 4599 阅读 · 0 评论 -
如何在vc++中旋转位图---任意角度
网上有很多关于位图旋转的资料,但是讲得很清楚的不多(我没有仔细查找).于是我也写了一个,希望能给向我这样的初学者一点帮助. 第一步,你必须知道位图即BMP格式的文件的结构. 位图(bmp)文件由以下几个部分组成: 1.BITMAPFILEHEADER,它的定义如下:原创 2008-12-23 11:24:00 · 2040 阅读 · 0 评论 -
kodak图像控件
下载地址: 下载地址1 源码简介:一、Kodak控件介绍 映像KODAKIMG.EXE是Windows 95/ 98/NT 和 Windows 2000中用于图像扫描、浏览和编辑的附件程序(在WINDOWS安装过程中是可选的),分为自由版和专业版(需另外购买)。在Windows的安装过程中,4个OCX Kodak控件(Kodak图像编辑控件、Kodak图像管理控件、Kodak图像扫描控件原创 2008-12-23 11:54:00 · 3212 阅读 · 0 评论 -
蒙特卡罗算法在游戏(围棋)AI中的应用
我是在 aigamedev.com 上的2008年第17周的 RoundUp 里看到这篇文章的推荐的,出于自己对中国象棋及其计算机博弈方面的兴趣,虽然对于围棋和围棋AI一窃不通,但还是挺仔细地阅读了这篇文章,觉得这里的内容跟自己以前了解的计算机博弈方面的知识有不同。所以把它翻译一下,为的是让自己更好地理解其中的知识。本人英语甚差,如有译错,敬请赐教。另,本文的作者应该是中国人,真希望他以后也用原创 2008-12-24 11:19:00 · 1820 阅读 · 0 评论 -
VC++相关知识
1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改。2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息。3 Java学习书推荐:《java编程思想》4 在VC下执行DOS命令a. system("md c://12");b. WinExec("Cmd.exe /C md c://12", SW_HIDE);c. ShellExe原创 2009-03-08 11:18:00 · 1172 阅读 · 0 评论 -
游戏AI算法
深入A*算法----浅析A*算法在搜索最短路径中的应用一、前言 在这里我将对A*算法的实际应用进行一定的探讨,并且举一个有关A*算法在最短路径搜索 的例子。值得注意的是这里并不对A*的基本的概念作介绍,如果你还对A*算法不清楚的话, 请看姊妹篇《初识A*算法》。这里所举的例子是参考AMIT主页中的一个源程序,你可以在AMIT的站点上下载也可以在我 的站点上下载。你使用这个源程序时,应原创 2008-12-24 11:17:00 · 6436 阅读 · 0 评论 -
图像二值化算法
二值化是一个相当复杂的理论问题,如果不给出具体的应用要求是无法做的. 最简单的: for(......) if(PixelY[i,j]>T) PixelY[i,j] = 255; else PixelY[i,j] = 0; 如果考虑具体问题,二值化算法不下100种. /***********************************************原创 2009-03-11 13:33:00 · 2344 阅读 · 0 评论 -
用VC++开发数据库应用程序(二)
2.2 应用ODBC API建立应用程序 虽然直接应用ODBC API编制应用程序相对来说较为繁琐,但是,由于直接使用ODBC API编写的程序相对要简洁、高效。所以,我们有必要学习直接使用ODBC API编程。看图之王ACDSee 6.0应用大全 数码人像照片矢量化及艺术处理六天学会Visual Basic数据库编程解析“震荡波”恶性蠕虫病毒原创 2009-03-19 10:38:00 · 1043 阅读 · 0 评论 -
用VC++开发数据库应用程序(四)
3、 使用MFC访问ODBC数据源 3.1 概述 Visual C++的MFC类库定义了几个数据库类。在利用ODBC编程时,经常要使用到CDatabase(数据库类),CRecordSet(记录集类)和CRecordView(可视记录集类)。 其中: CDatabase类对象提供了对数据源的连接,通过它你可以对数据源进行操作。 CRecordView类对象能以控制的形式 显示数据库记录。原创 2009-03-19 10:59:00 · 820 阅读 · 0 评论 -
使用ODBC访问数据库
使用ODBC API之前要用到的头文件和LIB库#include "sql.h" // This is the the main include for ODBC Core functions.#include "sqlext.h" // This is the include for applications using the Microsof原创 2009-03-18 11:56:00 · 1035 阅读 · 0 评论 -
用VC++开发数据库应用程序(一)
用VC++开发数据库应用程序(一)1、 概述 1、1 Visual C++开发数据库技术的特点 Visual C++提供了多种多样的数据库访问技术——ODBC API、MFC ODBC、DAO、OLE DB、ADO等。这些技术各有自己的特点,它们提供了简单、灵活、访问速度快、可扩展性好的开发技术。 简单性 Visual C++中提供了MFC类库、ATL模板类以及AppWizard、原创 2009-03-19 10:52:00 · 931 阅读 · 0 评论 -
Vmware6.0虚拟机中文版[安装使用完全指南]
//最近在向Linux方面发展,所以,先学习一下VMare虚拟机!!redhat!!呵呵。....虚拟机中文绿色版 是不支持拖拽文件的! 大家要注意!只能 共享 和 映射 传文件!首先:我们准备两个东西!第一是:Vmware6.0虚拟机中文绿色版 文件大小是22MB 下载地址: http://www.qupan.com/123099002@qq.com/16155.ht原创 2009-03-18 10:32:00 · 6219 阅读 · 3 评论 -
用VC++开发数据库应用程序(三)
2.24 SQL操作 构造和执行SQL语句 构造SQL语句 可以通过三种方式构造SQL语句:在程序开发阶段确定、在运行时确定或由用户输入SQL语句。 在程序开发时确定的SQL语句,具有易于实现、且可在程序编码时进行测试的优势。 在程序运行时确定SQL语句提供了极大灵活性,但给程序高度带来了困难,且需更多的处理时间。由用户输入的SQL语句,极大的增强了程序的功能,但是,程序必须提供友好的人原创 2009-03-19 10:56:00 · 871 阅读 · 0 评论 -
VC中有关数据类型转换的整理
说明:本文纯粹是总结一下有关类型转换的贴子,本人并未对所有方法都做测试,仅仅是为了给大家一个参考。读者层次:初学int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;CString str;_variant_t v1;_bstr_原创 2009-04-14 09:04:00 · 1431 阅读 · 0 评论 -
PL/SQL Developer
PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。 PL/SQL Developer主要特性:原创 2009-04-24 11:27:00 · 968 阅读 · 0 评论 -
线程池的介绍及简单实现
服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实现。线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾原创 2009-08-15 10:11:00 · 853 阅读 · 0 评论 -
ACE网络编程模式
ACE将网络编程进行了模式化,以便你不必每次都重复相同的代码。网络编程需要处理的事情多括中断,并发,多线程等,程序格式相对固定,但是健壮的网络程序则相对复杂。为了处理这些情形,ACE内建了几个网络编程的模式。最基本的模式当然是直接使用sock进行单客户单服务器单线程的一对一模型,这种模式相对简单,也和ACE关系不大,但是这样编写的程序不能处理并发的情况,可用性很差或者说基本不具有可用性。原创 2009-08-15 09:33:00 · 1243 阅读 · 0 评论 -
如何使用VC/MFC创建一个线程池
有许多应用程序创建的线程花费了大量时间在睡眠状态来等待事件的发生。还有一些线程进入睡眠状态后定期被唤醒以轮询工作方式来改变或者更新状态信息。线程池可以让你更有效地使用线程,它为你的应用程序提供一个由系统管理的工作者线程池。至少会有一个线程来监听放到线程池的所有等待操作,当等待操作完成后,线程池中将会有一个工作者线程来执行相应的回调函数。 你也可以把没有等待操作的工作项目放到线程池中,用Queu原创 2009-08-15 09:39:00 · 2734 阅读 · 1 评论 -
Carbide.C++快捷方式
Carbide.C++快捷方式的说明编辑相关 Ctrl+ ↓ Ctrl+↑ 在编辑区上下滚动(滚动滑块)Ctrl+ ← Ctrl + → 向前向后移动一个单词Ctrl+ Shift + ↓ Ctrl+ Shift + ↑ 向上向下移动一个段落(可以方便的在函数方法中滚动)Ctrl+G 搜索工作区中的声明Ctrl+ Shift +G 搜索所有引用Ctrl+ Shift +S 保存所有文档Ctrl原创 2009-09-22 14:32:00 · 1346 阅读 · 0 评论 -
static_cast
static_cast 用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型原创 2009-09-30 10:06:00 · 599 阅读 · 0 评论