
VC
文章平均质量分 72
云淡风清的Coding
这个作者很懒,什么都没留下…
展开
-
c\c++文件操作比较
cc++读写字符串fgets(字符数组名,n,文件指针);其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符。fputs(字符串,文件指针);ifstream >>ofstream 格式化读写函数fscanf(文件指针,格式字符串,输入表列);fprintf(文件指针,格式字符串,输出表列);istringstream>>ostringstrea原创 2017-07-20 08:13:14 · 1308 阅读 · 0 评论 -
多线程编程之四——线程的同步(转)
八、线程的同步 虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能转载 2017-07-20 08:13:19 · 152 阅读 · 0 评论 -
多线程编程之三——线程间通讯(转)…
七、线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准类型转载 2017-07-20 08:13:22 · 208 阅读 · 0 评论 -
多线程编程之二——MFC中的多线程开…
五、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程转载 2017-07-20 08:13:25 · 527 阅读 · 0 评论 -
多线程编程之一问题提出(转)
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000); //...转载 2017-07-20 08:13:27 · 230 阅读 · 0 评论 -
c++ volatile用法(转)
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值(FromMemory),而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1) 并行设备的硬件寄存器(如:状态寄存器)2) 一个中断服务子程序中会访问到的非自动变量(Non-automatic var...转载 2017-07-20 08:13:30 · 269 阅读 · 0 评论 -
Rational,Quantify使用时VC项目参数
Quantify:1. C/C++ -> 常规 ->调试信息格式化:“程序数据库(/Zi)”2.C/C++ -> 优化 -> 优化:“禁用”3.C/C++ -> 代码生成 ->运行时库:“多线程DLL(/MD)”4. 链接器 -> 高级 ->固定基址:“生成重定位节(/FIXED:NO)”Purify:For native-compiled (unm...转载 2017-07-20 08:13:33 · 318 阅读 · 0 评论 -
VC中用内存映射文件处理大文件(转)
引言 文件操作是应用程序最为基本的功能之一,Win32API和MFC均提供有支持文件处理的函数和类,常用的有Win32API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通转载 2017-07-20 08:13:35 · 695 阅读 · 0 评论 -
在visual2005下读取文件夹中的文件
在网上找了一些代码都不能用,后来才知道是因为visual 2005下默认用的是UNICODE,所以不能输出文件名。下面是在2005下可以运行的代码,输出是文件的全路径,每个文件夹中所有文件的全路径保存在allFileName里面。代码是在一个网友的代码的基础上做了简单修改得到的,把FindFirstFile改成了 FindFirstFileA,其它小的修改就不缀述了,另外在运行代码的时候要把Pro...转载 2017-07-20 08:13:43 · 296 阅读 · 0 评论 -
VC++的Unicode编程(转)
作者:韩耀旭一、什么是Unicode 先从ASCII说起,ASCII是用来表示英文字符的一种编码规范。每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH)。其实,英文字符并没有那么多,一般只用前128个(00H—7FH,最高位为0),其中包括了控制字符、数字、大小写字母和其它一些符号。而最高位为1的另128个字符(80H—FFH)被称为“扩展A转载 2017-07-20 08:13:49 · 403 阅读 · 0 评论 -
string和double的相互转化
方法一:Convert strings to double (atof), integer (atoi,_atoi64), or long (atol).doubleatof(constchar*string);intatoi(constchar*string);__int64 _atoi64(constchar*string);longatol(constchar*stri转载 2017-07-20 08:12:42 · 3473 阅读 · 0 评论 -
堆和栈的区别(转)
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(stati原创 2017-07-20 08:12:55 · 218 阅读 · 0 评论 -
CString/string/char比较详解
(一) 概述string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;CString(typedef CStringT<TCHAR,StrTraitMFC<TCHAR>>CString)为VisualC++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有ch...原创 2017-07-20 08:12:58 · 692 阅读 · 0 评论 -
size_t到底多大
C语言中:size_t一般用来表示一种计数,比如有多少东西被拷贝等。sizeof操作符的结果类型是size_t,数组大小也是size_t类型。它在头文件中typedef为unsigned int类型,即typedef unsigned int size_t 该类型保证能容纳实现所建立的最大对象的字节大小。strncat,strncmp,strncpy等都用到了它。size_t 是为...原创 2017-07-20 08:13:01 · 11129 阅读 · 0 评论 -
用vc++如何得到汉字的Unicode编码?
UNICODE环境设置在安装VisualStudio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下。UNICODE编译设置:C/C++, Preprocessor difinitions 去除_MBCS,加_UNICODE,UNICODE在ProjectSetting/link/output 中设置Entry为wWinMainCRTStart原创 2017-07-20 08:13:03 · 1189 阅读 · 0 评论 -
Assert是你的朋友
原创:Rob Manderson来源:http://www.codeproject.com/cpp/assertisyourfriend.asp翻译:hywqs_sky引言 在C++的消息公告板上经常可以看到出现ASSERT错误的求助信息。虽然这通常是希望消除ASSERT错误的帮助请求,但是几乎所有的求助者都认为ASSERT本身是罪恶的。我完全能理解一个ASSERT错误给程序员新手原创 2017-07-20 08:13:06 · 319 阅读 · 0 评论 -
assert()函数用法
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression );assert的作用是现计算表达式 expression,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的...原创 2017-07-20 08:13:09 · 534 阅读 · 0 评论 -
VC中Debug和Release的区别(转)
关于Debug和Release之本质区别的讨论本文主要包含如下内容:1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错3. 怎样“调试” Release 版的程序一、Debug 和 Release 编译方式的本质区别Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了原创 2017-07-20 08:13:11 · 778 阅读 · 0 评论 -
VC++ADO连接数据库
一、ADO简介ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLEDB之上的高层数据库访问技术,请不必为此担心,即使你对OLEDB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBCAPI、DAO、RDO都要容易使用,并不失灵活性。本文将详细地介绍在VC下如何使用ADO来进行数据库应用程序开发,并给出示例代码。...转载 2017-07-20 08:13:17 · 1944 阅读 · 0 评论