- 博客(105)
- 资源 (2)
- 收藏
- 关注
转载 网络字节序与主机字节序
<br /><br />不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序 <br />最常见的有两种 <br />1. Little endian:将低序字节存储在起始地址 <br />2. Big endian:将高序字节存储在起始地址 <br /><br />LE little-endian <br />最符合人的思维的字节序 <br />地址低位存储值的低位 <br />地址高位存储值的高位 <br />怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说 <b
2010-09-02 16:57:00
675
转载 C/C++结构体字节对齐
<br />[注]:最近在做UVC描述符的编辑工具,用到很多的结构,为了方便把结构体写成bin文件,需要把结构体中填充的字节去掉,在网上搜索得到这篇文章,感觉挺好的,转过来做个纪念。结构体(struct)的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。先看下面定义的两个结构体.<br />struct<br />{<br /> char a;<br /> short b;<br /> char c;<br />}S1;struct<br />{<
2010-09-02 12:26:00
1006
原创 CppUnit测试框架入门(转) 作者:Cpluser
测试驱动开发(TDD)是以测试作为开发过程的中心,它坚持,在编写实际代码之前,先写好基于产品代码的测试代码。开发过程的目标就是首先使测试能够通过,然后再优化设计结构。测试驱动开发式是极限编程的重要组成部分。XUnit,一个基于测试驱动开发的测试框架,它为我们在开发过程中使用测试驱动开发提供了一个方便的工具,使我们得以快速的进行单元测试。XUnit的成员有很多,如JUnit,PythonUnit等。今天给大家介绍的CppUnit即是XUnit家族中的一员,它是一个专门面向C++的测试框架。 本文不对CppU
2010-06-07 14:17:00
969
原创 HDC,CDC,CWindowDC,CClientDC,CPaintDC基础
首先说一下什么是DC(设备描述表) 解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉。 在c++ 编程中常会见到HDC,CDC,CClientDC,CPaintDC,CWindowDC这样的类 HDC是DC的句柄,API中的一个类似指
2010-06-04 11:14:00
1447
原创 一个类似千千静听进度条的SLIDER (非视觉效果)
BOOL CPlayerTestDlg::PreTranslateMessage(MSG* pMsg){ //TODO: Add your specialized code here and/or call the base class CPoint point; if (pMsg->message == WM_LBUTTONDOWN && pMsg->hwnd == GetDlgItem(IDC_SLIDER)->GetSafeHwnd()) { GetCursorP
2010-06-01 11:48:00
1830
原创 MFC 获取当前活动窗口的句柄
::AfxGetApp()-> GetMainWnd()->GetSafeHwnd()和::AfxGetMainWnd()->GetSafeHwnd()单线程中两个函数的结果是相同的。 如果是多线程则不同。前者是主线程的。 后者是单前所在的线程的。AfxGetApp( )是全局的。AfxGetApp( )这个函数可以得到当前应用进程的指针,是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象。如果子线程只是一个函数线程的话,在其内使用 ::AfxGetMainWnd()->GetSafeHwnd
2010-05-31 20:32:00
11306
1
原创 MFC 判断鼠标是否在控件范围内
WINDOWPLACEMENT wp; RECT rect; GetDlgItem(IDC_SLIDER)-> GetWindowPlacement(&wp); //client坐标系rect=wp.rcNormalPosition; if(point.x> rect.left && point.x < rect.right && point.y> rect
2010-05-28 09:57:00
6194
1
转载 (转)剖析MFC多线程程序的同步机制---译
原文链接:Synchronization in Multithreaded Applications with MFC 简介本文探讨基本的同步概念,并实际动手帮助新手掌握多线程编程。本文的重点在各种同步技巧。基本概念在线程执行过程中,或多或少都需要彼此交互,这种交互行为有多种形式和类型。例如,一个线程在执行完它被赋予的任务后,通知另一个线程任务已经完成。然后第二个线程做开始剩下
2010-05-27 10:45:00
1121
原创 [VC/MFC]滑动动条控件Slider的用法
在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下:主要要方法有:1、设置、取得滑动范围: void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE ); void GetRange( int& nMin, int& nMax ) const;2、设置、取得按下左右箭头滑动间隔: int SetLine
2010-05-26 15:19:00
3070
转载 c# 的messageBox的各种用法(转)
MessageBox("消息内容", "返回值 确定1",MessageBoxButtons.OK,MessageBoxIcon.Question); MessageBox("消息内容",, "返回值 确定1 取消2",MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);MessageBox("消息内容", "返回值 终止3 重试4 忽略
2010-04-02 10:09:00
917
转载 C# AttributeUsage
c# AttributeUsage的使用在我们开发中是十分常见的,那么我们了解c# AttributeUsage的基本情况从何入手呢?那么本文就向你详细介绍相关的内容。 C# AttributeUsage的使用是如何的呢?首先让我们来了解一下什么是AttributeUsage类它是另外一个预定义特性类,AttributeUsage类的作用就是帮助我们控制定制特性的使
2010-03-29 10:29:00
2222
转载 c# 反射的用法
在网上查找了不少的资料,可以说大同小异,概念性的东西网上一搜一堆,今天把反射的东西整理了一下,供大家使用,我保证我这里是最全面的东西,当然也是基础的东西,在学好了这一切的基础上,大家可以学习反射的具体插件等应用,老鸟就不用看了.首先我们建立一个类库,将它生成为HelloWorld.dll,using System; namespace Webtest { public i
2010-03-28 15:58:00
906
转载 COM线程模型-套间(转)
COM线程模型-套间来源: http://blog.csdn.net/crybird/archive/2008/10/11/3057067.aspx查找了好多资料,终于对套件这一概念有一点心得,赶紧记录下来。首先,只要遵守COM规范,不用COM库也能编写COM程序,那相当于自己实现用到的COM库函数。本篇COM如果单独出现,指COM库。1 进程、线程回顾
2010-03-04 10:28:00
1525
转载 多线程 传递参数
开发中的多线程编程进行一个简单的总结,相信对大家会有所帮助的。下面就具体来看看: 不需要传递参数,也不需要返回参数 我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下: 以下是引用片段:ThreadStart threadStart=new ThreadStart(Calculate);Thread thread=new Thread
2010-02-23 14:28:00
796
转载 C#多线程函数如何传参数和返回值
提起多线程,不得不提起 委托(delegates)这个概念.我理解的委托就是 具有 同样参数和返回值 的函数的集合.比如public delegate void MyDelegate(int arg);就是这种形式的函数 void Myfuntion(int i); 的集合.如何将一个函数加入 委托 的集合?MyDelegate dele = new MyDelegate(Myfuntio
2010-02-23 14:02:00
2147
转载 使用c#创建一个可以监视全局鼠标位置的程序
首先要在焦点不在当前应用程序中也要获得鼠标位置,我们就需要使用全局鼠标钩子我们先新建一个类库GlobalMouseHook,然后导入命名空间:System.Windows.Forms;System.Runtime.InteropServices;将类重命名为MouseHook,其代码如下: using System.Windows.Forms;using S
2010-02-05 17:05:00
1319
原创 C# listview之点击空白区仍然不失去选中项的状态
要做出这个效果,不能在mouseclick,click事件响应函数中写代码,因为大部分空白区不会响应该事件,mousedown也不可,应用mouseup事件来响应该要求,代码如下: private void listView1_MouseUp(object sender, MouseEventArgs e) { if (e
2010-02-05 13:33:00
6766
原创 c#:文件对话框(FileDialog)
c#:文件对话框(FileDialog)打开文件对话框(OpenFileDialog) 1、 OpenFileDialog控件有以下基本属性InitialDirectory 对话框的初始目录 Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*" FilterIndex 在对话框中选择的文件筛选
2010-02-05 09:41:00
1565
转载 python 中带星号和双星好的参数
当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。>>> def powersum(power, *args):... Return the sum of each argument raised to specified power.... total = 0...
2010-01-28 23:24:00
2796
转载 (转)Python字符串的encode与decode研究心得——解决乱码问题
为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成“/xe4/xb8/xad/xe6/x96/x87”的形式?为什么会报错“UnicodeEncodeError: ascii codec cant encode characters in position 0-1: ordinal not in range(128)”?本文就来研究一下这个问题。
2010-01-15 14:34:00
723
转载 python中正则表达式与re 模块
1. 9.7 正则表达式与 re 模块一个正则表达式就是一个用来表示某种模式的字符串。它能帮助你方便的检查一个字符串是否与某种模式匹配。 re 模块使 Python 语言拥有全部的正则表达式功能。 compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。 re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符
2010-01-14 23:32:00
814
原创 关于cout,wcout输出的测试,以及printf,wprintf 输出中文,内存中直接输出图像给网页问题
一:cout,wcout输出测试调试环境:VS2005 UNICODE代码段如下 _setmode(fileno(stdout),_O_BINARY);TCHAR *pBuf = NULL;SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);SafeArrayUnaccessData (varBLOB.parray);
2009-12-11 13:28:00
6859
4
转载 转载--c++中构造函数初始化的方法以及主要区别
一、我的问题是关于初始化C++类成员的。我见过许多这样的代码(包括在你的栏目中也见到过): CSomeClass::CSomeClass() { x=0; y=1; } 而在别的什么地方则写成下面的样子: CSomeClass::CSomeClass() : x(0), y(1) { } 我的一些程序员朋友说第二种方法比较好,但他们都不知道为什么是这样。你能告诉我这两种类成员初始化方法的区别吗?
2009-12-03 11:02:00
883
1
原创 字符网页输出的一些测试
unicode环境下 C_Error c_err(_T("getmap功能尚未开放"));c_err.senderror(); 情况一:int C_Error::senderror(){ fprintf(stdout, "Content-Type:text/html;charset=utf-8;"); fprintf(stdout, "/n/n
2009-12-02 16:16:00
978
原创 _tgetenv(),_tcscat() ,setmode(),_tsplitpath()等函数的 was declared deprecated 警告
这些函数因为不是十分安全的,对于内存不够的时候处理并不完善,所以建议使用 更为安全的函数版本比如_tgetenv_s();_tcscat_s(),_tsplitpath_s()等 _tgetenv_s()函数声明:errno_t getenv_s( size_t *pReturnValue, char* buffer, size_t
2009-12-02 13:04:00
6626
转载 CGI应用程序开发基础
CGI 脚本结构 计划你的CGI脚本 标准CGI环境变量 CGI 脚本的移植性 CGI 库 CGI 的局限 1.CGI 脚本结构 当脚本被服务器引发时,服务器常常以两种途径之一向脚本传递信息:GET或POST。这两种方法被称为请求方法。所使用的请求方法是通过环境变量传给脚本,该环境变量叫作REQUEST_METHOD(还定义了另外两种请求方法一HEAD和PUT,但它们不是特别应用于CGI,并且不鼓
2009-12-01 17:08:00
2398
原创 关于指针,对象周期,构造函数等的一些测试
先给一个类A: class A{public: A(){ printf("structor "); };public: ~A(){ printf("destructor"); };} //代码1//注意C函数的实现与代码2不同A* C(A *a){ return a;}int _tmain(int ar
2009-11-26 13:50:00
713
原创 字符串的存储方式以及静态存储区域、栈、堆
在编程的时候偶尔会遇到一个字符串的问题,好像是这样说:不能把 const char* 转换成 TCHAR * ,只是这个错误有时候有,有时候没有,也没有深入关注过,只知道 "abc" 应该是一个const 型的。 今天偶然看到2个帖子,终于对这个问题有了比较清晰的理解 贴一: http://topic.csdn.net/u/20090302/17/90
2009-11-26 13:07:00
2514
原创 c++中NEW对象的一些测试
在看《C++Primer》第四版 第5.11节new与delete,产生了一些疑惑,对于一个没有定义任何构造函数的类param,new param()和new param是不同的,对于内置类型也是一样,书上的例子只给了内置类型intint *a = new a;int *b = new b(); 其中a 为 随机值,按书上说法是,a为上次位于该内存的值,b初始化为0;现
2009-11-25 10:59:00
1471
7
转载 Xerces C++ 学习笔记
1. 初始化平台: XMLPlatformUtils::Initialze() 2. 销毁平台: XMLPlatformUtils::Terminate(); 3. 加载分析报文 XercesDOMParser *parser = new XercesDOMParser(); Parser->parse( 参数 ); 这个参数可以直接是文件名,也可以是内存的数
2009-11-24 14:43:00
2255
转载 2个经典的SOCKET攻击程序
1、著名的dos攻击软件 /******************** DOS.c *****************/ #include #include #include #include #include #include #include #include #include void send_tcp(int sockfd,struct sockaddr_in *addr); uns
2009-11-12 14:19:00
692
转载 c++ socket编程入门
什么是 socket? 你经常听到人们谈论着 “socket”,或许你还不知道它的确切含义。现在让我告诉你:它是使用 标准Unix 文件描述 符 (file de script _ or) 和其它程序通讯的方式。什么?你也许听到一些Unix高手(hacker)这样说过:“呀,Unix中的一切就 是文件!”那个家伙也许正在说到一个事实:Unix 程序在执行任何形式的 I/O 的时候,程序是在读
2009-11-12 10:34:00
4071
1
转载 MFC常用的数据类型
MFC常用数据类型 收藏 MFC常用数据类型:1、UINT A 16-bit unsigned integer on Windows versions 3.0 and 3.1; a 32-bit unsigned integer on Win32.定义原型:typedef unsigned int UINT;2、bool应该是C语言里定义的,返回值为true和fals
2009-10-28 17:02:00
1032
原创 对数组取地址的一点问题
在看《深入浅出MFC》的时候,遇到了如题的问题,去网上查了下,原来如此原帖地址http://topic.csdn.net/u/20090825/21/6d302f2e-4ba2-4aca-987b-afe1a5ef84f6.html现摘录几个比较好的回答先看问题: 在数组中:如a[3][4] 我通过下面一段程序发现:通常说a实质是数组的地址,那么: int a[3][4]; co
2009-10-28 15:25:00
2566
转载 深入浅出之正则表达式(转)
前言: 半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程。于是一直想把他翻译过来。这个愿望直到这个五一长假才得以实现,结果就有了这篇文章。关于本文的名字,使用“深入浅出”似乎已经太俗。但是通读原文以后,觉得只有用“深入浅出”才能准确的表达出该教程给我的感
2009-10-22 09:43:00
636
转载 多线程编程要点
线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享所有的进程资源,包括打开的文件、信号标识及动态分配的内存等。一个进程内的所有线程使用同一个地址空间,而这些线程的执行由系统调度程序控制,调度程序决定哪个线程可执行以及什么时候执行线程。线程有优先级别,优先权较低的线程必须等到优先权较高的线程执行完后再执行。在多处理器的机器上,调度程序可将多个线程放到不同的处理器上去运行,这样
2009-10-20 10:55:00
621
转载 程序员的十层楼(4~5层)
第4层 大牛从第3层爬到第4层可不像上面说过的那几层一样容易,要成为大牛的话,你必须要能做牛人们做不了的事情,解决牛人们解决不了问题。比如牛人们通常都不懂写操作系统,不会写编译器,不懂得TCP/IP协议的底层实现,如果你有能力将其中的任何一个实现得象模象样的话,那么你就从牛人升级为"大牛"了。当然,由于各个专业领域的差别,这里举操作系统、编译器、TCP/IP协议只是作为例子,并不代表成为"
2009-10-20 10:54:00
564
转载 程序员的十层楼(6~7层)
第6层 学者当"专家"们想继续往上一层楼爬时,他们几乎一眼就可以看到楼梯的入口,不过令他们吃惊的是,楼梯入口处竖了一道高高的门槛,上面写着"创新"二字。不幸的是,大多数人在爬到第5层楼时已经体能消耗过度,无力翻过这道门槛。有少数体能充足者,可以轻易翻越这道门槛,但是并不意味着体力消耗过度者就无法翻越,因为你只是暂时还没有掌握恢复体能的方法而已,当掌握了恢复体能的方法,将体能恢复后,你就可以
2009-10-20 10:54:00
551
转载 程序员的十层楼(1~3层)
程序员的十层楼 自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道
2009-10-20 10:52:00
640
原创 终于用boost的正则库写完了一个文本转换
过程真是艰苦啊,对文本结构分析的不全面,一度让我以为BOOST的REGEX库有缺陷。还好,最终证明是自己的问题,呵呵,否则重新用其他方法实现的话,真要让人崩溃了。 但是其中还有一点小问题,类似如下的正则#define REG_LINE "[ ]*" /*标记头*// "((//
2009-10-19 17:11:00
815
MapServer之mapfile配置说明
2009-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人