05 2015 档案
摘要:上一篇文章也讲过,find()函数只能处理简单类型的内容,也就是缺省类型,如果你想用一个自定义类型的数据作为查找依据则会出错!这里将讲述另外一个函数find_if()的用法这是find()的一个更强大的版本。这个例子演示了find_if(),它接收一个函数对象的参数作为参数, 并使用它来做更复杂的评...
阅读全文
摘要:C++中将string类型转换为int, float, double类型 主要通过以下几种方式:# 方法一: 使用stringstreamstringstream在int或float类型转换为string类型的方法中已经介绍过, 这里也能用作将string类型转换为常用的数值类型。Demo:[cpp...
阅读全文
摘要:分类:C/C++2012-08-30 21:402017人阅读评论(2)收藏举报任何管理某资源的类比如智能指针需要遵循一个规则(The Rule of Three):如果你需要显式地声明一下三者中的一个:析构函数、拷贝构造函数或者是拷贝赋值操作符,那么你需要显式的声明所有这三者。拷贝构造函数和析构函...
阅读全文
摘要:这个宏都是MFC的调试宏.ASSERT_VALID宏用来在运行时检查一个对象的内部合法性,比如说现在有一个学生对象,我们知道每个学生的年龄一定大于零,若年龄小于零,则该学生对象肯定有问题。事实上,ASSERT_VALID宏就是转化为对象的成员函数AssertValid()的调用,只是这种方法更安全。...
阅读全文
摘要:在《TinyXml快速入门(二)》介绍使用tinyxml库获取xml文件声明,查询指定节点、删除指定节点的做法。在本文中继续介绍修改指定节点和增加节点的做法。修改节点其实和查询指定节点的值有点类似,也分为两个函数,一个实现修改文本。另一个负责修改属性。/*!*\brief修改指定节点的文本。**\...
阅读全文
摘要:在《TinyXml快速入门(一)》中我介绍了使用TinyXml库如何创建和打印xml文件,下面我介绍使用tinyxml库对xml文件进行一系列的操作,包括获取xml文件声明,查询指定节点、删除指定节点、修改指定节点和增加节点的用法。在《TinyXml快速入门(一)》中我们知道xml文件中的一个节点元...
阅读全文
摘要:第一:动态库和静态库的生成:1) 新建一个生成dll工程: 文件->新建->项目->Win32->Win32控制台应用程序 输入项目名称:dllTest ,项目路径:D:\VC 确定 下一步 应用程序类型:选择DLL 完成2)编写代码:2-1) 增加一个头文件:dllTest.h#def...
阅读全文
摘要:dll 文件可以导入变量,函数,和C++类,但是导入变量会使执行程序与dll紧耦合,而C++类导入则需要两个文件的开发商所用的编译器相兼容,所以做好只导入函数;创建dll :头文件:#ifdef MYLIBAPI //在dll源文件中必须定义这个宏为导出宏#else //因为执行文件中必然没有定义这...
阅读全文
摘要:对于xml文件,目前的工作只是集中在配置文件和作为简单的信息文件来用,因此我不太喜欢使用msxml这种重量级的xml解析器,特别是使用msxml解析xml涉及到复杂的com类型转换,更是令人感觉繁琐。因此对于简单的xml文件的解析,我更愿意使用开源的TinyXml。首先介绍一下TinyXml吧。Ti...
阅读全文
摘要:前言TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析,使用简单,容易上手。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。DOM模型即文档对象模型,是将整...
阅读全文
摘要:对于xml文件,目前的工作只是集中在配置文件和作为简单的信息文件来用,因此我不太喜欢使用msxml这种重量级的xml解析器,特别是使用msxml解析xml涉及到复杂的com类型转换,更是令人感觉繁琐。因此对于简单的xml文件的解析,我更愿意使用开源的TinyXml。首先介绍一下TinyXml吧。Ti...
阅读全文
摘要:1.简介在.NET平台,微软为C#或托管C++程序员提供了丰富的类库,用以支持各种需求,其中就有对XML文件操作的丰富的类。例如XMLDocument, XmlElement等。但是C++标准库中并未提供相应的库。本地开发的C++程序员一般采用开源类库实现对XML文件的操作,例如比较优秀的TinyX...
阅读全文
摘要:用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行。实际上有多种方法可以实现,这里只介绍两种方法。一、在应用程序类中定义用MFC生成的工程中都有一个名为CxxxApp的类,它派生于CWinAp...
阅读全文
摘要:摘要:VC++中操作XMLXML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini。VC++里操作XML有两个库可以用:MSXML和XmlLite。MSXML又细分了两种接口:MSXML又细分了两种接口:DOM和...
阅读全文
摘要:█ 选择(select)模型是Winsock中最常见的 I/O模型。核心便是利用 select 函数,实现对 I/O的管理!利用 select 函数来判断某Socket上是否有数据可读,或者能否向一个套接字写入数据,防止程序在Socket处于阻塞模式中时,在一次 I/O 调用(如send或recv、...
阅读全文
摘要:在 Winsock 中,重叠 I/O(Overlapped I/O)模型能达到更佳的系统性能,高于select模型、异步选择和事件选择三种。重叠模型的基本设计原理便是让应用程序使用一个重叠的数据结构(WSAOVERLAPPED),一次投递一个或多个 Winsock I/O 请求。针对这些提交的请求...
阅读全文
摘要:在socket编程中,服务器端accept()等待一个客户端的连接,当连接成功后,accept拷贝客户端的地址信息到sin_addr里面,我们如何从sin_addr取得此客户端的Ip地址和端口号呢?实际上,当sockaddr_in.sin_family = AF_INET时,sockaddr =so...
阅读全文
摘要:FD_READ事件l调用WSAEventSelect函数时,如果当前有数据可读l有数据到达时,并且没有发送过FD_READ事件l调用recv/recvfrom函数后,仍然有数据可读时RD_WRITE事件l调用WSAEventSelect函数时,如果调用能够发送数据时l调用connect()/acce...
阅读全文
摘要:简述:只要指定事件对象中的一个或全部处于有信号状态,或者超时间隔到,则返回。#include DWORD WSAAPI WSAWaitForMultipleEvents( DWORDcEvents,const WSAEVENT FAR * lphEvents, BOOL fWaitAll,DWORD...
阅读全文
摘要:accept()不是监听,accept()是接受新连接。listen()是进入监听状态,表示愿意接收连接请求。listen之后有连接请求就将其放到队列中,accept()时把新连接请求从队列中取出,建立新的socket。
阅读全文
摘要:WSAEventSelect 是 WinSock 提供的一种异步事件通知I/O模型,与 WSAAsyncSelect模型有些类似。 该模型同样是接收 FD_XXX 之类的网络事件,但是是通过事件对象句柄通知,而非像 WSAAsyncSelect一样依靠Windows的消息驱动机制。与WSAAsync...
阅读全文
摘要:#include#includebool ctrlhandler( DWORD fdwctrltype ){switch( fdwctrltype ){// handle the ctrl-c signal.case CTRL_C_EVENT:printf( "ctrl-c event\n\n" )...
阅读全文
摘要:上一篇中我给各位说了一般人认为C++中较为难的东西——指针。其实对于C++,难点当然不局限在指针这玩意儿上,还有一些有趣的概念,如模板类、虚基类、纯虚函数等,这些都是概念性的东西,几乎每一本C++书上都会介绍,而平时我们除了会接触到纯虚函数外,其他的不多用。纯虚函数,你可以认为与C#中的抽象方法或接...
阅读全文
摘要:win32线程池代码(WinApi/C++)健壮, 高效,易用,易于扩, 可用于任何C++编译器//说明, 这段代码我用了很久, 我删除了自动调整规模的代码(因为他还不成熟)/**************************************************************...
阅读全文
摘要:[cpp]view plaincopy#include#include//forSTLstringclass#include//forHANDLE#include//for_beginthread()usingnamespacestd;classThreadX{private:intloopStar...
阅读全文
摘要:Socket(套接字)作者信息肖进单位:南京中萃食品有限公司资讯部邮箱:xiaoj@njb.swirebev.com电话:025-58642091与socket有关的一些函数介绍1、读取当前错误值:每次发生错误时,如果要对具体问题进行处理,那么就应该调用这个函数取得错误代码。intWSAGetLas...
阅读全文
摘要:用了三种方法,第一种使用高精度性能计数器;第二种是使用多媒体定时器,另一种是《Windows图形编程》里提供的CPU周期来获取。推荐第一种方式测量:先看第一种:[cpp]view plaincopy#include#includevoidmain(){LARGE_INTEGERlitmp;LONGL...
阅读全文
摘要:带下划线_的函数一般是函数库内部的函数,而不带下划线的一般是提供给用户使用的函数。带下划线的目的是为了防止用户定义的函数和函数库的函数重名冲突,所以直接使用也是可以的。要用getch()必须引入头文件conio.h _T这类似的是宏定义转换,转换成函数参数相符合的类型,如果没有,编译器一般可以自动转...
阅读全文
摘要:一.创建线程函数 常用的创建线程的函数是CreateThread,还有MFC中的AfxBeginThread方法.另一种函数是_beginthreadex,其实它在内部调用了CreateThread,在调用之前_beginthreadex做了很多的工作,从而使得它比CreateThread更安全.所...
阅读全文
摘要:gcc和g++都是GNU(组织)的一个编译器。 误区一:gcc只能编译c代码,g++只能编译c++代码 两者都可以,但是请注意: 1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求...
阅读全文
摘要:MFC中CString是一个方便的字符串操作的类, 然而很多函数需要传递字符指针, 这就需要进行CString和普通字符串的转换。1、CString用作C字符串常量。直接使用强制类型转换即可, 如:[cpp]view plaincopyCStringstrSports(_T("HockeyisBes...
阅读全文
摘要:关于XML文件的解析方法的引导,大家可以去试试这个工具(TinyXML)1.首先下载TinyXML库的文件,这里给出链接,大家自己去下吧,记着要上国际http://prdownloads.sourceforge.net/tinyxml/tinyxml_2_3_4.zip?download2.下载后解...
阅读全文
摘要:本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!它是一个异步非阻塞Socket封装类,CAsyncSocket::Create()有一个参数指明了你想要处理哪些Socket事件,你关心的事件被指定以后,这个Socket默认就被用作了异步方式。CAsyncSocket的Crea...
阅读全文
摘要:socket编程用法---- 随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要。由于C++语言对底层操作的优越性,许多文章都曾经介绍过用VC++进行Socket编程的方法。但由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,VC++的MFC类库中提供了...
阅读全文
摘要:对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然。 异步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而同步指发...
阅读全文
摘要:在网络通讯中,由于网络拥挤或一次发送的数据量过大等原因,经常会发生交换的数据在短时间内不能传送完,收发数据的函数因此不能返回,这种现象叫做阻塞。 Winsock对有可能阻塞的函数提供了两种处理方式:阻塞和非阻塞方式。阻塞模式在阻塞方式下,收发数据的函数在被调用后一直要到传送完毕或者出错才能返回。在阻...
阅读全文
摘要:Qt的电子时钟是个老掉牙的demo了,但是利用lcdNumber显示的样子非常老土(下图第一个显示效果),一看就知道是从qt帮助文档里摘出来的example,毫无新意。 美化一下系统时钟,抛开固有控件躯壳,DIY效果让人眼前一亮,要知道细节决定UI成败。这也是我一直所追求的。 思路非常简单...
阅读全文
摘要:只看楼主倒序阅读楼主发表于: 2013-10-22 //LCD时间显示QLCDNumber *m_pLcdTime = new QLCDNumber(this);//设置显示几个数字m_pLcdTime->setDigitCount(19);//设置数字字体:Outline,轮廓突出,颜色为背景色;...
阅读全文
摘要:#include"clock.h"CLOCK::CLOCK(QWidget*parent):QWidget(parent){QTimer*timer=new QTimer(this);timer->start(1000);//一秒钟connect(timer,SIGNAL(timeout()),th...
阅读全文
摘要:threadpool是基于boost库实现的一个线程池子库,但线程池实现起来不是很复杂。我们从threadpool中又能学到什么东西呢?它是基于boost库实现的,如果大家对boost库有兴趣,看看一个简单的实现还是可以学到点东西的。threadpool基本功能1、任务封装,包括普通任务(task_...
阅读全文
摘要:xl_blocking_queue.h?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#ifndef SRC_COMMON_BLOCKING_QUE...
阅读全文
摘要:建议看这个链接的内容:http://cpp.winxgui.com/cn:mempool-example-boost-pool Pool分配是一种分配内存方法,用于快速分配同样大小的内存块, 尤其是反复分配/释放同样大小的内存块的情况。1. pool 快速分配小块内存,如果pool无法提供小块内存给...
阅读全文
摘要:#include #include #include usingnamespaceboost;usingnamespacestd;voidrunChild(constintn){ cout g++ threadgroup.cc -lboost_thread> ./a.out 3如果在freebsd4...
阅读全文
摘要:在虚拟机里安装系统,可以很方便我们对系统的各项功能进行测试,而又不会影响本机系统,本节就介绍如何在虚拟机中安装Win7系统。工具/原料vm9虚拟机电脑一台方法/步骤1在百度上搜索win7系统,然后下载相关系统。2打开VMware9.0,选择Create a New Virtural Machine(...
阅读全文
摘要:C++11中增加了final与override关键字,貌似是从Java语言中借鉴而来,用途也一样。看例子代码:01.#include 02.03.usingnamespacestd;04.05./* use final on a class to prevent inheriting; compil...
阅读全文
摘要:Introduction:Before the possibilities of the newC++ language standard,C++11, the use oftemplateswas quite limited when it came to implementing for ins...
阅读全文
摘要:Variadic macros are function-like macros that contain a variable number of arguments.RemarksTo use variadic macros, the ellipsis may be specified as t...
阅读全文
摘要:In N2402, Anthony Williams proposes that local types, and unnamed types be usable as template arguments. At the February 2008 (Bellevue) meeting, the ...
阅读全文
摘要:Templates can be defined within classes or class templates, in which case they are referred to as member templates. Member templates that are classes ...
阅读全文
摘要:在C++98/03语言标准中,对于源代码中出现的每一处模板实例化,编译器都需要去做实例化的工作;而在链接时,链接器还需要移除重复的实例化代码。显然,让编译器每次都去进行重复的实例化工作显然是不必要的,并且连接器也因此受累。在现实编码世界里,一个软件的实现可能会在很多代码块中使用同一种类型去实例化同一...
阅读全文
摘要:static_assert提供一个编译时的断言检查。如果断言为真,什么也不会发生。如果断言为假,编译器会打印一个特殊的错误信息。12345678910111213template class Vector{static_assert(Size a1;Vector a2;return 0;}1234...
阅读全文
摘要:In C++03, the return type of a function template cannot be generalized if the return type relies on those of the template arguments. Here is an exampl...
阅读全文
摘要:0. 形式for ( declaration : expression ) statement0.1 根据标准将会扩展成这样的形式:1 {2 auto&& __range = expression;3 for (auto __begin = begin-expression,4 __end = en...
阅读全文
摘要:简介C++0x中引入了static_assert这个关键字,用来做编译期间的断言,因此叫做静态断言。其语法很简单:static_assert(常量表达式,提示字符串)。如果第一个参数常量表达式的值为真(true或者非零值),那么static_assert不做任何事情,就像它不存在一样,否则会产生一条...
阅读全文
摘要:C的NULL在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码:int*i=NULL;foo_t*f=NULL;实际上在C语言中,NULL通常被定义为如下:#defineNULL((void*)0)也就是说NULL实际上是一个void *的指针,然后吧void *指针赋值给int *和...
阅读全文
摘要:C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看。本文作为 5 月的最后一篇博客,将介绍 C++11 的 lambda 表达式。很多语言都提供了 lambda 表达式,如 Python,Java 8。lambda ...
阅读全文
摘要:原型:#include forward_iterator remove_if(forward_iterator start,forward_iterator end,Predicate p);函数remove_if()移除序列[start, end)中所有应用于谓词p返回true的元素.此函数返回一...
阅读全文
摘要:一. move关于 lvaue 和 rvalue,在 c++11 以前存在一个有趣的现象:T& 指向 lvalue (左传引用), const T& 既可以指向 lvalue 也可以指向 rvalue。但却没有一种引用类型,可以限制为只指向 rvalue。这乍看起来好像也不是很大的问题,但其实不是这...
阅读全文
摘要:在C++中,decltype作为操作符,用于查询表达式的数据类型。decltype在C++11标准制定时引入,主要是为泛型编程而设计,以解决泛型编程中,由于有些类型由模板参数决定,而难以(甚至不可能)表示之的问题。泛型编程在整个1990年代越发流行,对实现类型推导机制的需求也应运而生。为此,许多编译...
阅读全文
摘要:线程状态在一个线程的生存期内,可以在多种状态之间转换。不同操作系统可以实现不同的线程模型,定义许多不同的线程状态,每个状态还可以包含多个子状态。但大体说来,如下几种状态是通用的: 就绪:参与调度,等待被执行。一旦被调度选中,立即开始执行。 运行:占用CPU,正在运行中。 休眠:暂不参与调度,等待特定...
阅读全文
摘要:陈大师的文章,核心就是利用__sync_bool_compare_and_swap来尝试无锁操作,在组里的svr状态统计的代码看里看到类似用法。可以有效的避免用锁,但是感觉有死循环的风险,所以一般__sync_bool_compare_and_swap只尝试有限次数比较合适。对__sync_bool...
阅读全文
摘要:前几篇文章,我们讨论了如何使用mutex保护数据及使用使用condition variable在多线程中进行同步。然而,使用mutex将会导致一下问题:等待互斥锁会消耗宝贵的时间 — 有时候是很多时间。这种延迟会损害系统的scalability。尤其是在现在可用的core越多越多的情况下。低优先级的...
阅读全文
摘要:什么是句柄:句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础...
阅读全文
摘要:#include#include//#include//#include#defineUM_MSG1(WM_USER+1)#defineUM_MSG2(WM_USER+2)DWORDWINAPIThread1(LPVOIDpara){DWORDdwThreadId=*(DWORD*)para;DWO...
阅读全文
摘要:内核对象的基本概念Windows系统是非开源的,它提供给我们的接口是用户模式的,即User-Mode API。当我们调用某个API时,需要从用户模式切换到内核模式的I/O System Services API。例如我们调用Kernel32.dll中的CreateFile创建文件,最终将执行ntdl...
阅读全文
摘要:Win32线程控制只有是围绕线程这一内核对象的创建、挂起、恢复、终结以及通信等操作,这些操作都依赖于Win32操作系统提供的一组API和具体编译器的C运行时库函数。本篇围绕这些操作接口介绍在Windows系统下的多线程编程要点,后续将进一步涉及多线程通信的同步互斥等议题。1.线程的创建(Create...
阅读全文
摘要:一.线程间数据通信系统从进程的地址空间中分配内存给线程栈使用。新线程与创建它的线程在相同的进程上下文中运行。因此,新线程可以访问进程内核对象的所有句柄、进程中的所有内存以及同一个进程中其他所有线程的栈。这样一来,同一个进程中的多个线程可以很容易的相互通信。到目前为止,将数据从一个线程传到另一个线程的...
阅读全文
摘要:介绍本文旨在帮助有经验的Win32程序员来了解c++ 11线程库及同步对象 和 Win32线程及同步对象之间的区别和相似之处。在Win32中,所有的同步对象句柄(HANDLE)是全局句柄.它们可以被共享,甚至可以在进程间复制。在C++11中,所有的同步对象都是栈(stack)对象,这意味着它们必须是...
阅读全文
摘要:thread_group是boost库中的线程池类,内部使用的是boost::thread。随着C++ 11标准的制定和各大编译器的新版本的推出(其实主要是VS2012的推出啦……),本着能用标准库就用标准库的指导原则,决定把项目中多线程相关的部分代码从boost::thread迁移到std::th...
阅读全文
摘要:下面是一个生产者消费者问题,来介绍condition_variable的用法。当线程间的共享数据发生变化的时候,可以通过condition_variable来通知其他的线程。消费者wait 直到生产者通知其状态发生改变,Condition_variable是使用方法如下:·当持有锁之后,线程调用wa...
阅读全文
摘要:C++11开始支持多线程编程,之前多线程编程都需要系统的支持,在不同的系统下创建线程需要不同的API如pthread_create(),Createthread(),beginthread()等,使用起来都比较复杂,C++11提供了新头文件、、、等用于支持多线程。使用C++11开启一个线程是比较简单...
阅读全文
摘要:从我最近发布的C++11线程教学文章里,我们已经知道C++11线程写法与POSIX的pthreads写法相比,更为简洁。只需很少几个简单概念,我们就能搭建相当复杂的处理图片程序,但是我们回避了线程同步的议题。在接下来的部分,我们将进入C++11多线程编程的同步领域,看看如何来同步一组并行的线程。我们...
阅读全文
摘要:本篇教学代码可在GitHub获得:https://github.com/sol-prog/threads。在之前的教学中,我展示了一些最新进的C++11语言内容:1.正则表达式(http://solarianprogrammer.com/2011/10/12/cpp-11-regex-tutoria...
阅读全文
摘要:C++11开始支持多线程编程,之前多线程编程都需要系统的支持,在不同的系统下创建线程需要不同的API如pthread_create(),Createthread(),beginthread()等,使用起来都比较复杂,C++11提供了新头文件、、、等用于支持多线程。使用C++11开启一个线程是比较简单...
阅读全文
摘要:利用boost的thread实现一个线程类,维护一个任务队列,以便可以承载非常灵活的调用。这个线程类可以方便的为后面的线程池打好基础。线程池还是动态均衡,没有什么别的。由于minGW 4.7 对 C++11 thread 不支持,所以采用 boost 代替,linux 下是支持的,只是名字空间不同而...
阅读全文
摘要:[size=small]首先下载:http://www.threadingbuildingblocks.org/uploads/77/111/2.1/tbb21_20080605oss_win.zip当前是2.1版本解压到c盘,打开vs2005,设置vc++的项目目录include:C:\tbb21...
阅读全文
摘要:获取TBBTBB的官方网站在http://threadingbuildingblocks.org/,可以在它的Downloads页面里找到Commercial Aligned Release,最新版是tbb20_014,Windows上开发需要下载tbb20_014oss_src.tar.gz和tb...
阅读全文
摘要:中文名,线程构建模块外文名Thread Building Blocks缩写TBB开发intel目录1线程构建模块2黑体亮温3斜交载重轮胎4串联球轴承1线程构建模块编辑TBB,Thread Building Blocks,线程构建模块,是Intel公司开发的并行编程开发的工具。OSCON 上,Inte...
阅读全文
摘要:最近在看多核编程。简单来说,由于现在电脑CPU一般都有两个核,4核与8核的CPU也逐渐走入了寻常百姓家,传统的单线程编程方式难以发挥多核CPU的强大功能,于是多核编程应运而生。按照我的理解,多核编程可以认为是对多线程编程做了一定程度的抽象,提供一些简单的API,使得用户不必花费太多精力来了解多线程的...
阅读全文
摘要:OpenMp是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受的,用于共享内存并行系统的多线程程序设计的一套指导性的编译处理方案(Compiler Directive)。OpenMP支持的编程语言包括C语言、C++和Fortran;而支持OpenMp的编译...
阅读全文
摘要:像VBA操作Excel一样,Win32::OLE模块也是通过对象操作来控制Excel。如果想自动化操作和控制Excel应用程序,则必须要与Excel对象模型所提供的对象进行交互。理解和熟悉Excel对象模型,就可以更容易的操作Excel。Excel对象模型提供了很多对象[1],有些对象可能会经常遇到...
阅读全文
摘要:Excel在公司用的很多,而这个东西我用的不是很好,就想用程序来处理,遇到很多错误。这几天研究了下OLE操作Excel。环境:VS2008 SP1+Excel 2007加入OLE Type Library随便建立一个MFC程序,选添加类,Typelib中的MFC类,出来一个对话,可用类型库选“Mi...
阅读全文
摘要:这些天做个软件,需要读取 Excel 并导入到数据库中,所以研究了一下在 VC 下操作 Excel 的方法,这里做个总结,以作备忘。一、最常用的 OLE 自动化方式这个方式应该说是功能最全的方式,可能也是应用的最多的方式。由于这种方式采用的是隐藏启动 Office Excel 的方式,所以几乎是全能...
阅读全文
摘要:1方法用例*&---------------------------------------------------------------------**&本程序总结了常用的ABAP对EXCEL的操作,包括如下子例程*&方法名方法说明*&(1)create_excel创建excel*&(2)ins...
阅读全文
摘要:在多核的硬件结构中,如果要充分发挥硬件的性能,必须采用多线程(或多进程)执行,以提高CPU的利用率。多核系统的编程模型和多个CPU的SMP系统的编程模型是一致的,都属于共享存储的编程模型;同时,多核环境中也可以使用的分布式编程模型。目前,多核并行编程方法可以分为以下四类:基于Raw Thread A...
阅读全文
摘要:在上篇文章中,对Java Builder模式的使用体验主要是从Builder对构造器改造方面的优秀特性来说的,感觉并没有从Java Builder模式本身的功能和作用去写,因此决定再从Builder模式的作用以及在项目开发中的使用来体验下。 Builder 模式,即建造者模式,顾名思义,这个模式可...
阅读全文
摘要:看来Java构造器模式,决定动手体验下。构造器模式是什么?干什么用的?推荐大家看下ITEYE的一篇文章http://www.iteye.com/topic/71175 了解构造器模式对于系统的重构,也是很有帮助的。例如,可以优化多构造器类的设计。首先,我先寻找一个应用场景。拿民工和设计师来写固然可...
阅读全文
摘要:一个程序指定到单独一个CPU上运行会比不指定CPU运行时快。这中间主要有两个原因:1)CPU切换时损耗的性能。2)Intel的自动降频技术和windows的机制冲突:windows有一个功能是平衡负载,可以将一个线程在不同时间分配到不同CPU,从而使得每一个CPU不“过累”。然而,Inter又有一个...
阅读全文
摘要:请问一下多线程一定多核吗?对于操作系统和软件来说,多线程并不意味需要多核心的CPU,事实上,2005年以前,所有的个人PC都是单核心的,但是1993年问世的WindowsNT就支持多线程。操作系统采用分时的办法让多个线程平分CPU时间。多线程是不是意味着一定并发执行?‘网上各种概念太多,也太笼统,求...
阅读全文