返回首页 我的新博客
摘要: #include #include int main(int argc,char **argv) { char *haystack="aaa||a||bbb||c||ee||"; char *needle="||"; char* buf = strstr( haystack, needle); while( bu... 阅读全文
posted @ 2008-08-31 01:04 buffer的blogs 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 介绍 我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执 行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数。还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者 算法的运行时间。编译器和操作系统为我们提供了很多时间函数,这些时间函数的精度也是各不相同的,所以,如果我们想得到准确的结果,必须使用合适的... 阅读全文
posted @ 2008-08-31 00:40 buffer的blogs 阅读(684) 评论(0) 推荐(0) 编辑
摘要: DLL(Dynamic Link Library),动态链接库。 1.关于__declspec(dllimport)和__declspec(dllexport) 在一个DLL的编写过程中,如果要使一个变量、一个函数或一个类能够被外部程序调用,在函数声明上加上__declspec(dllimport)关键字。 例: 引出一个变量: __declspec(dllexport) int iEx; 引出... 阅读全文
posted @ 2008-08-30 22:32 buffer的blogs 阅读(331) 评论(0) 推荐(0) 编辑
摘要: MultiByteToWideChar和WideCharToMultiByte用法详解 //======================================================================== //TITLE: // MultiByteToWideChar和WideCharToMultiByte用法详解 //AUTHOR: // nora... 阅读全文
posted @ 2008-08-30 22:29 buffer的blogs 阅读(339) 评论(0) 推荐(0) 编辑
摘要: CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于 CString 地址之下的一个隐藏区域)以及一个缓冲区长度。 有效字符数的大小可以是从0到该缓冲最大长度值减1之间的任何数(因为字符串结尾有一个NULL字符)。字符记数和缓冲区长度被巧妙隐藏。 (1) char*转换成CString 若将cha... 阅读全文
posted @ 2008-08-30 22:26 buffer的blogs 阅读(1018) 评论(0) 推荐(0) 编辑
摘要: STL编程的次要麻烦之一是虽然可以很容易地建立可以在一个平台上编译的软件,但在其它平台上则需要附加的#include指示。这个烦恼来自一个事实:C++标准(不像C标准)未能指定哪一个标准头文件必须或者可能被其他标准头文件#include。由于有了这样的灵活性,不同的实现就会选择去做不同的东西。 这在实践中意味着什么?我可以给你一些的概念。我使用了五个STL平台... 阅读全文
posted @ 2008-08-30 21:27 buffer的blogs 阅读(535) 评论(0) 推荐(0) 编辑
摘要: typedef 的用法 *****以下是参考部分***** 此部分参考自:http://blog.sina.com.cn/u/572f7666010008dm 用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; ... 阅读全文
posted @ 2008-08-30 21:09 buffer的blogs 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 大二上学期做过8051单片机的按键程序,当时项目要求实现按键控制LED屏显示并且接收GPRS传来的数据。当时为了节省成本,就去大西电子市场买来8*8的LED块,然后自己一点一点的拼接成128*16的。做完之后虽然可以运行,但是很勉强,尤其是按键扫描程序没有下面这位哥写得简洁缜密,所以就贴过来,以后用到的时候直接研究:unsignedcharkey,key_h,kpush;unsignedintke... 阅读全文
posted @ 2008-08-30 19:54 buffer的blogs 阅读(4079) 评论(0) 推荐(1) 编辑
摘要: 这个串口线把一个25 针的串行口接到9 针的串行口上,PC 一端为9针的母插头: 连接到串行设备为25 针的公插头: 25针转9针串口线信号定义 ... 阅读全文
posted @ 2008-08-30 16:19 buffer的blogs 阅读(7147) 评论(3) 推荐(0) 编辑
摘要: /* 利用操作系统提供的API编写防火墙. 该程序涉及到的API说明请访问微软的MSDN Library 代码在C++ Builder 5编译通过 如果您想和我交流请email:zzwinner@163.com */ #pragma hdrstop #include "windows.h" #include "Fltdefs.h" //需要加载"iphlpapi.lib" #pragma ar... 阅读全文
posted @ 2008-08-30 13:38 buffer的blogs 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 一、使用MFC编写FTP程序 1、生成CInternetSession变量。 CInternetSession ses; 2、打开FTP连接。 CFtpConnection* pFTP=ses.GetFtpConnection("ftp.microsoft.com","user","password",port,FALSE); 3、打开文件。 CInter... 阅读全文
posted @ 2008-08-30 13:37 buffer的blogs 阅读(529) 评论(0) 推荐(1) 编辑
摘要: 假设你有了名为My的对话框工程.有一个按钮并有响应的程序:如OnButton1(); BOOL CListCtrl1Dlg::OnInitDialog() { CDialog::OnInitDialog(); AfxSocketInit(NULL);//支持Socket.若在向导是没选Support Socket,这就的加.还要加#include 在StdAfx.h中. ....... // A... 阅读全文
posted @ 2008-08-30 13:33 buffer的blogs 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 设置connect的超时很简单,CSDN上也有人提到过使用select,但却没有一个令人满意与完整的答案。偶所讲的也正是select函数,此函数集成在winsock1.1中,简单点讲,"作用使那些想避免在套接字调用过程中被锁定的应用程序,采取一种有序的方式,同时对多个套接字进行管理"(《Windows网络编程技术》原话)。使用方法与解释请见《Windows网络编程技术》。 在使用此函数前,需先... 阅读全文
posted @ 2008-08-30 13:32 buffer的blogs 阅读(1847) 评论(0) 推荐(0) 编辑
摘要: MSComm 作为一个串行通讯控件为程序员串口通讯编程节省了很多时间。在基于对话框的应用中加入一个MSComm控件非常简单。只需进行以下操作即可: 打开“Project->Add To Project->Components and Controls->Registered Activex Controls”,然后选择控件:Microsoft Communication Control,ver... 阅读全文
posted @ 2008-08-30 13:21 buffer的blogs 阅读(920) 评论(0) 推荐(0) 编辑
摘要: 工业控制中,有两种方式读下位机的状态,一种是读端口,比如采用c语言的inport()函数。一种是使用组建,微软的api-readfile(),第三方控件。读串口也能读下位机状态,读端口也能读下位机状态,有什么区别呢 1:inport只能读出寄存器8位数据,readfile()能读出很多个字符串。2:储存方式不一样,并且速度也不一样。inport是即时数据,速度比readfile要快很多,但容量小。... 阅读全文
posted @ 2008-08-30 13:19 buffer的blogs 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 工业控制中,有两种方式读下位机的状态,一种是读端口,比如采用c语言的inport()函数。一种是使用组建,微软的api-readfile(),第三方控件。读串口也能读下位机状态,读端口也能读下位机状态,有什么区别呢 1:inport只能读出寄存器8位数据,readfile()能读出很多个字符串。2:储存方式不一样,并且速度也不一样。inport是即时数据,速度比readfile要快很多,但容量小。... 阅读全文
posted @ 2008-08-30 11:36 buffer的blogs 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 1:结构体中定义字符数组并赋值 先看一段错误的代码 struct stype { char c1[16] }; struct stype s1; s1.c1 = "Hello"; //错误 这是很幼稚的概念错误,char c2[10]声明一个10元素的数组c2,此时c2的空间已经被分配,c2是这个数组的地址,是一个常量,如果再进行 c2 = “hello" 这样其实就试图... 阅读全文
posted @ 2008-08-30 10:34 buffer的blogs 阅读(831) 评论(1) 推荐(0) 编辑
摘要: 当你想用线程函数调用类的成员函数时,需要将线程函数声明为类的static成员。由于线程函数是一个由系统调用的函数,所以是一个callback函数,所以他不能有this 指针,所以你的线程函数要么是全局函数,要么是类的静态成员。将线程函数申明为静态,如: class CRealtimeTask { public: static UINT taskmain(LPVOID param); BOO... 阅读全文
posted @ 2008-08-30 01:03 buffer的blogs 阅读(1302) 评论(1) 推荐(0) 编辑
摘要: #include #include #include #define LSB 0 #define MSB 1 #define RXR 0 #define TXR 0 #define IER 1 #define IIR 2 #define LCR 3 #define MCR 4 #define LSR 5 #define MSR 6 #define Com1_... 阅读全文
posted @ 2008-08-29 22:45 buffer的blogs 阅读(1270) 评论(0) 推荐(0) 编辑
摘要: 在许多应用程序领域中,都需要控制小数点后的小数位,但是浮点数对此不能提供直接的支持。怎样对程序中的浮点数据进行"整齐"地格式化呢?在此我们有一个迂回的方法,先把它们转换为字符串,格式化后以文本形式显示出来。 在日常编程中--包括对话框、关系数据库、金融程序、SMS程序及一切处理数据文件的程序,需要控制小数点后的小数位的情况非常普遍,本文中将要讲解如何用简单的方法来控制小数位,另外... 阅读全文
posted @ 2008-08-29 16:56 buffer的blogs 阅读(1905) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2008-08-28 23:39 buffer的blogs 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 先看一段代码: struct A; vector A_vect(5); for(int i = 0; i ::iterator it_A = A_vect.end()-1; for(; it_A != A_vect.begin(); ... 阅读全文
posted @ 2008-08-28 23:27 buffer的blogs 阅读(1095) 评论(0) 推荐(0) 编辑
摘要: 本来在做PC机MFC的程序,调试的一点问题没有之后再移植到装有WINCE5.0的SKY2440的开发板上的,但是程序写完之后发现有很多莫名其妙的问题。今天决定先做基本的Win32控制台程序,调试的没问题之后再进一步做有友好界面的MFC程序,最后再移植。 关于strcpy()函数,说存在安全争议,于是我用strcpy_s()复制字符串。后者的第二个参数必须比实际字符串长度大1,即增加一... 阅读全文
posted @ 2008-08-28 22:45 buffer的blogs 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 本打算将申请的“国家大学生创新型实验项目”——基于GPS、GPRS的旅游景区智能导游系统,做完并且做得很明白之后,在把做项目过程中的一些技术细节贴出来供大家参考一下了,但是那样由于时间的关系会忘记很多细节上的好东西,于是决定在做的过程中以日记的形式记录一下。这样也有利于过后《科研日志》的写作。 本系统的具体功能之类的以后再说吧,现在时间紧,估计大家从名字里也可以体会出系... 阅读全文
posted @ 2008-08-28 22:43 buffer的blogs 阅读(424) 评论(2) 推荐(0) 编辑
摘要: 详细解说STL string 详细解说STL string 0 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函数 1.3 string insert, replac... 阅读全文
posted @ 2008-08-28 21:20 buffer的blogs 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 一个好的页面版式 效果用js 写的 http://www.cadcaecam.com/forum/frame.php?frameon=yes&referer=http%3A//www.cadcaecam.com/forum/thread-13382-1-1.html 阅读全文
posted @ 2008-08-27 22:01 buffer的blogs 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 一. VC常用数据类型列表 二. 常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CString及string,char *与其他数据类型的转换和操作 ●CString,string,char*的综合比较 ●数学类型与CString相互转化 ●CString与char*相互转换举例 ●CString 与 BSTR 型转换 ●VARIANT 型转化... 阅读全文
posted @ 2008-08-27 21:56 buffer的blogs 阅读(432) 评论(0) 推荐(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_t v2; 一、其它数据类型转换为字符串 [li]短整型(int) it... 阅读全文
posted @ 2008-08-27 21:53 buffer的blogs 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 当我们花了大部分时间将已有的应用程序移植到Microsoft Windows CE中。一般说来,这个计划不是太难。我们起步于Microsoft Win32代码,当然Windows CE是基于Win32应用程序接口(API)的。有利的是,我们的应用程序(即Raima 数据管理器)有方便的使用接口,并包含一个大约由150个子函数组成的库,这些函数都是由C语言写成,可以用来创建、管理和访问数据库。 ... 阅读全文
posted @ 2008-08-27 21:51 buffer的blogs 阅读(895) 评论(0) 推荐(0) 编辑
摘要: VC中利用多线程技术实现线程之间的通信 当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可... 阅读全文
posted @ 2008-08-27 21:32 buffer的blogs 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 如何实现进程间的通信 1、引言 在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。WIN32 API提供了许多函数使我们能够方便高效的进行进程间的通讯,通过这些函数... 阅读全文
posted @ 2008-08-27 21:29 buffer的blogs 阅读(827) 评论(1) 推荐(0) 编辑
摘要: 转自:iwaswzq Windows 语音编程初步 一、SAPI简介 软件中的语音技术包括两方面的内容,一个是语音识别(speech recognition) 和语音合成(speech synthesis)。这两个技术都需要语音引擎的支持。微软推出的应用编程接口API,虽然现在不是业界标准,但是应用比较广泛。 SAPI全称 The Microsoft Speech API.相关的SR和SS引擎位于... 阅读全文
posted @ 2008-08-27 21:26 buffer的blogs 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 第一种情况: char* p="how are you ?"; char name[20]="ABCDEFGHIJKLMNOPQRS"; strcpy(name,p); //name改变为"how are you ? OPQRS " ====>错误! strncpy(name,p,sizeof(name)) //name改变为"how are you ? " ... 阅读全文
posted @ 2008-08-27 21:17 buffer的blogs 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 网络上找的,不知道对不对的,不负责任的哦。 字符分类: 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控制符 iswdigit() isdigit() 测试字符是否为数字 iswgraph() isgraph() 测试字... 阅读全文
posted @ 2008-08-27 19:20 buffer的blogs 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 使用这个函数时如果只在头文件中包含 include是不够的 还得单击 project-->setting-->link object/library 下加入Winmm.lib 或者用代码 #pragma comment(lib,"winmm.lib") PlaySound函数的声明为: BOOL PlaySound(LPCSTR... 阅读全文
posted @ 2008-08-27 15:04 buffer的blogs 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 很多技术笔试都考字符串复制函数的编写(不能用那个库函数), 有人说说这个函数的考点在哪里和编写的时候要注意的问题吗? 最好能有编写严谨的例程。 函数声明: char * strcpy(char * strDest, const char * strSrc) 目前为止,我总结出: 1,考察strDest和st... 阅读全文
posted @ 2008-08-27 13:35 buffer的blogs 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 称 类型 说明 ---------------------------------------------------------------------------------- Abort ... 阅读全文
posted @ 2008-08-27 12:13 buffer的blogs 阅读(263) 评论(0) 推荐(0) 编辑
摘要: LPCSTR :指向一个字符串常量的指针(每个字符是占一个字节) LPCTSTR :指向一个字符串常量的指针(每个字符是占两个字节) LPTSTR :指向一个字符串的指针(每个字符是占两个字节) LPCSTR:32-bit指针 指向一个常数字符串 LPCTSTR:32-bit指针 指向一个常数字符串,此字符串可移植到Unicode和DBCS L... 阅读全文
posted @ 2008-08-27 11:00 buffer的blogs 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 1。短整型(int) itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 itoa(i,temp,2); ///按二进制方式转换 2。长整型(long) ltoa(l,temp,10); 3。浮点数(float,double) 用fcvt可以完成转换,这是MSDN中的例子: ... 阅读全文
posted @ 2008-08-27 10:46 buffer的blogs 阅读(252) 评论(0) 推荐(0) 编辑
摘要: bool TForm1 :: OpenPorts() { //打开并设置串口 //如果打开成功:返回true,否则返回false; //如果打开成功:m_hPortsHandle含有一有效值,否则为m_hPortsHandle为NULL; ... 阅读全文
posted @ 2008-08-27 00:05 buffer的blogs 阅读(649) 评论(0) 推荐(0) 编辑