摘要: 貌似用以下2个方法可以取得当前工程的版本信息1.代码如下所示:#pragma comment(lib, "Version.lib ") TCHAR szFullPath[MAX_PATH]; DWORD dwVerInfoSize = 0; DWORD dwVerHnd; VS_FIXEDFILEINFO * pFileInfo;GetModuleFileName(NULL,... 阅读全文
posted @ 2008-12-12 16:57 西风残照 阅读(2232) 评论(0) 推荐(0) 编辑
摘要: 问题:HttpUtility.HtmlDecode ,HttpUtility.HtmlEncode 与 Server.HtmlDecode ,Server.HtmlEncode 与 HttpServerUtility.HtmlDecode , HttpServerUtility.HtmlEncode... 阅读全文
posted @ 2015-01-06 10:57 西风残照 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 线程的调度优化1. 引言 通过前边的介绍,知道了并行区域,默认情况下会自动生成与CPU个数相等的线程,然后并行执行并行区域中的代码。对于并行区域中的for循环有特殊的声明方式,这样不同的线程可以分别运行for循环变量的不同部分。通过锁同步(atomic、critical、mutex函数)或事件同步(nowait、single、section、master)来实现并行区域的同步控制。 那么系统是如何对线程进行调度的呢?具体的调度策略均有底层完成,本节介绍几种for可以在上层对for循环进行控制的调度策略。2. 调度策略 调度策略 功能 适用场合static循环变量区域分为n等份,每个线程平分n. 阅读全文
posted @ 2011-09-01 17:11 西风残照 阅读(834) 评论(0) 推荐(0) 编辑
摘要: 线程同步之互斥锁函数前文介绍了互斥锁同步的两种方法:atomic和critical,本章介绍OpenMP提供的互斥锁函数。互斥锁函数类似于Windows、Linux下的mutex。1. 互斥锁函数 函数声明 功能 void omp_init_lock(omp_lock*) 初始化互斥器 void omp_destroy_lock(omp_lock*) 销毁互斥器 void omp_set_lock(omp_lock*) 获得互斥器 void omp_unset_lock(omp_lock*) 释放互斥器 void omp_test_lock(omp_lock*) 试图获得互斥器,如果获得成功则 阅读全文
posted @ 2011-09-01 17:10 西风残照 阅读(5034) 评论(0) 推荐(0) 编辑
摘要: OpenMP --- 线程同步1. 引言在OpenMP中,线程同步机制包括互斥锁同步机制和事件同步机制。2. 互斥锁同步 互斥锁同步的概念类似于Windows中的临界区(CriticalSection)以及Windows和Linux中的Mutex以及VxWorks中的SemTake和SemGive(初始化时信号量为满),即对某一块代码操作进行保护,以保证同时只能有一个线程执行该段代码。3. atomic(原子)同步语法 #pragma omp atomic x < + or * or - or * or / or & or | or << or >> &g 阅读全文
posted @ 2011-09-01 16:59 西风残照 阅读(1157) 评论(0) 推荐(0) 编辑
摘要: 数据的共享和私有化 1. 引言 在并行区域内,若多个线程共同访问同一个存储单元,并且至少会有一个线程更新数据单元中的内容时,会发生数据竞争。本节的数据共享和私有化对数据竞争做一个初步探讨,后续会涉及同步、互斥的内容。2. 并行区域内的变量的共享和私有 除了以下三种情况外,并行区域中的所有变量都是共享的: > 并行区域中定义的变量 > 多个线程用来完成循环的循环变量 > private、firstprivate、lastprivate、reduction修饰的变量 例如, view plaincopy to clipboardprint?···&# 阅读全文
posted @ 2011-09-01 16:56 西风残照 阅读(1725) 评论(0) 推荐(0) 编辑
摘要: 项目背景: 为了提升项目的运行效率,考虑多线程技术。最近OpenMP技术很热,咱也凑凑热闹,也为了充分发挥电脑硬件的能力。硬件: 酷睿2双核 2.2GHz 3G 内存软件: Visual Studio 2010 旗舰版 Windows 7 旗舰版 32bit难点: 由于多个线程操作同一个文件,很有可能存在线程冲突。OpenMP: 1. 必须的头文件 <omp.h> 2. #pragma omp 预处理指示符指定要采用OpenMP。 例如通过 #pragma om parallel for 来指定下方的for循环采用多线程执行,此时编译器会根据CPU的个数来创建线程数。对于双核系统, 阅读全文
posted @ 2011-09-01 09:58 西风残照 阅读(1481) 评论(0) 推荐(2) 编辑
摘要: 在Edit控件上面设置group属性(特别注意)在Spin控件上设置Auto Buddy 为 trueSet Buddy Integer 为 trueAlignment 为 Right Align在OnInitDialog()中加入 CSpinButtonCtrl * pSpinCtrl = (CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1); pSpinCtrl-&... 阅读全文
posted @ 2010-02-25 17:12 西风残照 阅读(2413) 评论(0) 推荐(0) 编辑
摘要: Spin box control本是用于对话框中的控件。但有时需要将它放到工具栏上。VC++ 2008里实现如下:一、在工具栏上新增一个工具按钮项,资源命名为ID_TOOL_EDIT_TIME。再增加一个工具项,资源命名为ID_TOOL_INTEGRA_TIME。二、在工程里增加一个新MFC Class,base class选CToolBar,新类命名为CMainToolBar。三、在MainTo... 阅读全文
posted @ 2010-02-25 17:08 西风残照 阅读(1321) 评论(0) 推荐(0) 编辑
摘要: 并非我的原创,来自互联网,且是两篇帖子的合集,个人觉得这样才比较完备----------------------------------------------------------------------Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类... 阅读全文
posted @ 2009-05-11 16:33 西风残照 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 首先,这个只是最简单的一个说明而已,拿VS来说,有些特许的DLL就不是下面的方法生成和使用的,比如COM。一.DLL中导出类,对象,方法1. 创建一个空的Win32 Dynamic-Link Library项目Tes2. 在项目中添加一个Test.h头文件,该文件的内容如下://导出类class __declspec(dllexport) CTest...{...};//导出函数__declspe... 阅读全文
posted @ 2008-12-15 09:39 西风残照 阅读(489) 评论(0) 推荐(0) 编辑