自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

转载 c++ 时间类型详解 time_t

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广告采用。目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Uni

2014-05-08 12:17:42 807

转载 [转]回调函数中调用类中的非静态成员变量或非静态成员函数

回调函数中调用类中的非静态成员变量或非静态成员函数【问题】如何在类中封装回调函数?a.回调函数只能是全局的或是静态的;b.全局函数会破坏类的封装性,故不予采用;c.静态函数只能访问类的静态成员,不能访问类中非静态成员。 1. 如何让静态函数访问类的非静态成员。  a.声明一静态函数a(),将类实例对象指针做为参数传入。如:class A() {

2014-04-02 16:45:21 698

转载 程序员的快乐:那些小细节

转自 ricohzhanglong:Zac Gery是一位软件开发者、教练、架构师与UX/UI设计师。目前,Zac在Frontline Technologies担任首席软件工程师一职,他感兴趣的领域包括软件工程、微软技术、敏捷软件开发、设计模式等等。近日,Zac撰写了一篇文章,谈到了影响程序员快乐的各种因素,特别强调了那些不太为人所注意的小细节。除了薪水、晋升机会等显而易见的因

2014-02-10 12:25:33 811

转载 VARIANTs, SAFEARRAYs, and BSTRs

----------------------- an Introduction to Common OLE Data Types for the C++ ProgrammerSo far, all the textbooks I have seen that talk about VARIANTs, SAFEARRAYs, and BSTRs tend to lead th

2013-12-26 16:00:40 1108

转载 多线程编程

在我的工作中经常会编写DLL,这些DLL有个共同的特点就是都有一个初始化函数,一个资源释放函数,其他几个函数都是核心功能函数。而且这些DLL有时会被多个进程同时调用,这就牵扯到多进程的多线程调用DLL的问题。有点绕口,以下我根据我实践中遇到的问题,分四种情况分享一下我解决此类问题的经验:1、动态库只有一个导出函数。这种情况非常少,也是最容易处理的情况。这种情况下编写函数时,只需要考

2013-12-20 16:17:46 756

转载 深入浅出Win32多线程程序设计之线程控制

WIN32线程控制主要实现线程的创建、终止、挂起和恢复等操作,这些操作都依赖于WIN32提供的一组API和具体编译器的C运行时库函数。  1.线程函数  在启动一个线程之前,必须为线程编写一个全局的线程函数,这个线程函数接受一个32位的LPVOID作为参数,返回一个UINT,线程函数的结构为:UINT ThreadFunction(LPVOID pParam)

2013-12-17 12:23:17 759

转载 C/C++中判断某一文件或目录是否存在

C/C++中判断某一文件或目录是否存在 1.C++很简单的一种办法:#include iostream>#include fstream>using namespace std;#define FILENAME "stat.dat"int main(){     fstream _file;     _file.open(FILENAME,i

2013-12-09 14:34:06 701

转载 WinExec、ShellExecute和CreateProcess及返回值判断方式

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。    WinExec主要运行EXE文件。  ⑴ 函数原型: UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow);   ⑵ 参数:   lpCmdLine:指向一个空结束的字符串,串中

2013-12-09 14:32:48 2020

转载 The RAII(resource acquisition is initialization) of C++

RAII is a must know technique for c++ programmers, no excuse.    RAII(resource acquisition is initialization), in a nutshell, is same as "let the object handle the resource".I use the word

2013-11-29 10:48:37 1025

转载 BSTR、char*和CString转换

string.net编译器delete框架api(1) char*转换成CString  若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:[cpp] view plaincopychar chArray[] = "This is a test";  char * p

2013-11-08 14:23:41 600

转载 养生宝典,值得一读(健康养生)

1、成为永远病人的二大原因:过食 + 药物!就是吃太多啦,还有就是吃药,这绝对不是好事。2、糖尿病是全身性的代谢紊乱 !主因则是胰脏过度疲劳 !3、细嚼慢咽是在降低胰脏负担 !3、活得健康的重要原则:一少三多 ,即少吃、多休息、多喝水、多流汗。(最关键的一点)4、满身流汗对各种疾病都是有益的 !5、改变体质是根治高血压的不二法门 !6、有健康活力的肾

2013-11-07 08:57:42 1140

原创 Microsoft.Cpp.Win32.user

今天安装了VS2012,程序无法编译通过,缺少XXX.lib文件。发现"Include Directories"中的路径设置的不对,头文件没有指向VS2012的SDK(C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A),每个版本的SDK目录结构不同,所以目录中$(WindowsSdkDir)include的SDK名称也不一样。原来是用户配置信息

2013-08-06 17:01:44 8614 3

原创 如何比较两个EXCEL 文件的不同(各个EXCEL版本的方法)

说起文件内容比较,或许我们首先想到的是UltraCompare这类专业比较的软件,其功能非常强大,能够对基于文本的文件内容作出快速、准确的比较,有详细的差异报告,非常便于分析。其实,各种版本控制软件中也包含有或多或少的比较功能,如TFS、CVS、SVN等。但是如果待比较的文件不是基于文本类型的,那就无能为力了。今天我就来谈一谈Excel的比较方法及其特点,也和大家共同探讨一下,如果你有更好的方法,

2013-07-25 10:51:56 144390 3

转载 WIN32 SDK界面编程

WIN32 SDK界面编程 在介绍win32 sdk界面编程,先需要了解win32 编程。熟悉win32编程之后,就可以轻松进行win32 界面编程。一、什么是win32 编程Win32编程,指的是用Window提供的API(Application Programming Interface)为Window编写应用程序。 之所以称之为Win32,是因为现在的Window都是32位的

2013-07-22 12:13:18 6456

转载 如何使用VC的预编译技术(转载)

一、概念:1、预编译:就是编译器首先编译某个文件(称为预编译头文件),然后将这个编译结果保存起来,之后如果有其他源文件include了这个“预编译头文件”的时候,则自动从这个编译结果提取需要的信息进行编译。2、预编译结果文件(Precompiled header file):就是那个用来保存已经编译了的符号信息的文件(.PCH作为后缀)3、生成预编译结果文件(Create

2013-06-24 11:06:39 1049

原创 The difference between "ModifyMenu" & "EnableMenuItem"

At first,I have to confess that I made a misunderstanding on  the "EnableMenuItem",this function is to enable the "Menu Item" while I assume it also can enable the "Menu"(Please notice that what is "M

2013-04-11 09:29:53 944

转载 冯诺依曼解决的一个抛硬币问题

被誉为“现代电子计算机之父”的冯诺依曼同时也是伟大的数学家,他曾经巧妙的解决一个抛硬币问题。总所周知,很多球赛或者各种场合需要进行抛硬币来进行公平的选择,因为硬币的正反面是等概率的,现在有一枚硬币,由于变型导致正反面的概率不一样了,问怎样才能才能进行一次公平的选择(即做出一次猜测的概率为50%)?“博弈论”的奠基人冯诺依曼给的答案是这样的:把这枚硬币抛两次,如果两次的结果一

2013-03-01 16:26:32 1417

转载 有助生活的十种心理现象

我们的心理是非常奇妙的一件事情,科学家们花了这么多年的时间来研究人类的心理现象,至今没有找到一个确切的解答方案。现在我们要说的就是存在于我们人群当中的一些心理怪象,了解这些能够帮助我们更好地融入人群当中。  心理规律一:罗森塔尔效应  美国着名的心理学家罗森塔尔曾做过这样一个试验:  他把一群小白鼠随机地分成两组:A组和B组,并且告诉A组的饲养员说,这一组的老鼠非常聪明;同

2013-02-22 15:16:15 729

转载 VS2005的Command Window 调试命令的总结

VS2005的Command Window 调试命令的总结  调试命令的总结,挺有用的,所以转过来了。调试的时候,可以在VS2005的Command Window中输入调用。以 Unicode 形式列出内存>du 0x056769d0 原稿: http://msdn.microsoft.com/en-us/library/c338aexd.aspx

2013-02-19 12:08:59 514

转载 五险一金,你懂吗?

五险一金,你懂吗?平时不太懂这个,没有研究其规则及算法,特弄此文档以让大家知晓!(看来才知道原来我是法盲 囧)养老保险:一般要交满15年,到退休的时候才能终生享受养老金,所以想拿养老金的人请务必在自己退休前15年就开始交。如果到退休年龄交养老保险不满15年,那等到你退休的时候国家会把你个人帐户上存的8%的养老金全部退给你。那单位给你交的21%到哪里去了?国家把单位为你交的21%

2013-02-17 09:25:32 649

转载 调试技巧 —— 如何利用windbg + dump + map分析程序异常

之前碰到论坛里有几个好友,说程序不时的崩溃,什么xxoo不能read的! 如果光要是这个内存地址,估计你会疯掉~~所以分享一下基本的调试技巧,需要准备的工具有WinDbg + VC6.0,下面是自己整理的一份自动生成DUMP文件的源代码,只需要添加到工程即可,源代码如下:MiniDump.h[cpp] view plaincopy

2013-02-06 15:56:22 839

转载 理解First Chance和Second Chance避免单步调试

在现在C++、Java、.Net代码大行其道的时候,很多代码错误(Bug)都是通过异常的形式表现出来的。由于工期紧或者种种原因,很多程序员在碰到程序发生未处理的异常的第一反应就是try … catch (Exception e) { … }。然而代码开发到后期的时候,这种简单粗暴的解决代码错误(Bug)的方式就会在其他不相干的地方表现出来,有的时候甚至导致程序随机的不稳定,而且很难调试。比如执行下

2013-01-28 14:36:38 1071

转载 RC 资源文件

resource.h就是.rc文件的头文件.rc文件里的常量全在resource.h定义.rc文件和resource.h 都是给project add resource 的时候VS 自动生成的。一般情况下不用你去写和修改vc会帮你写和改但是如果你想用以前的.rc中的资源比如你以前做的对话框你只需复制粘贴就行了就象下面这段IDD_JK_DIALOG DIALO

2013-01-24 21:18:03 6468

转载 msvcprt.lib 冲突的问题

.exe调用lib编译出错:3>HM2p5DataStructure.lib(DataStructureIn.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker pe

2013-01-24 16:47:02 3007

转载 VC项目配置基础

一.预处理宏1. 通用宏VC6.0中:Project Setting>C/C++>Preprocessor definitionsVC2005中:项目属性>配置属性>C/C++>预处理器定义WIN32:指明是Window 32系统的编译器,一般用作平台识别。_MBCS/_UNICODE:指明该工程使用的字符集(多字节字符集/UNICODE)。

2013-01-16 16:56:44 912

转载 数组作为函数参数进行传递

今天编程序时发生了个这样的错误:在头文件里 定义了一个数组:View Code1 char s[]="1234567890";又定义了一个现显示组的函数:View Code1 void Display(char* c);通过下面这两条语句分别在现实函数和主函数中现实数组的大小:View Code1

2013-01-16 14:21:52 14167

转载 VS2010 如何添加H文件目录和LIB目录

H文件目录:依次点击“项目——XX 属性——C/C++——常规”,在“附加包含目录”中加入H文件所在的文件夹 LIB目录: 依次点击“项目——XX 属性——链接器——常规”,在“附加库目录”中加入LIB所在目录 还没完,在“链接器”中找到“输入”,在“附加依赖项”中加入abc.lib或用#pragma comment(

2013-01-10 09:56:47 1068

转载 vc编译exe的体积最小优化(附编译器参数)

人们都说vc做出的东西可以小点,现在你打开vc编译一个Hello World出来!点属性看下,咦!我没走眼吧,就一Hello World就160kb真是要人命啊! 呵呵!上面的情况是笔者所遭遇的情况.不过后来了解vc可以通过设置参数来自定义编译方式.为什么文件那么大!主要是编译器加入了很多没必要的代码(这里是对我们而言,不过有些代码还是有利于安全的).好了我们就手动改下编译器的参数来看看能到多

2013-01-09 12:19:47 2784 1

转载 修改VS2010的VC.net项目 framework对应版本

在C++/CLI中修改VC++的framework版本,由于VS2010不支持像C#项目文件的那种直接的下拉框模式,我们需要在.vcxproj文件中修改目标版本(TargetFrameWorkVersion)。VS2010中并没有默认的把这个节点添加到项目中,需要手动的添加这个xml节点:1:使用文本编辑器打开.vcxproj文件,找到并修改如下内容:      v2.

2013-01-09 11:51:42 1257

转载 c++中的.hpp与.h文件

1..CPP是源代码文件。你可以在.CPP文件的头部引用.HPP,.HPP文件是和.H文件一样的。VC6也可以引用.HPP文件,其实.HPP文件和.CPP文件也没什么大不了的不同,只不过它放在源码文件的首部,先执行罢了。它也是源代码。我们通常的习惯是源于太懒,不希望反反复复地总写重复代码。所以就出现了include这东西,来调用.HPP文件。还有什么问题?2.C++中的.hpp文件

2012-12-28 16:07:13 864

转载 DLL的调试

DLL的调试  转载▼ 假设:     要调试hook.dll hook.h hook.lib1建立一个新工程Test,将hook整个工程目录拷贝到Test目录下2在Test工程中需要用到hook.dll的源文件中(或stdafx.h中)加入      #include ".\hook\hook.h"    这样在该源

2012-12-28 16:06:20 523

转载 在Visual Studio中为“Open Containing Folder”使用快捷键(提高效率)

“Open Containing Folder” is one of  the frequent used functionality to open a particular file location  in windows explore from Visual Studio IDE . How did we do that ? Yes it’s very simple, Just ri

2012-12-25 10:24:10 2591

转载 DLL输入和输出函数—dllinport与dllexport

Microsoft特殊处dllimport和dllexport存储类修饰符是C语言的Microsoft特殊处扩充。这些修饰显式定义了DLL的客户界面(可执行的文件或另外的DLL)。说明为dllexport的函数消除了一个模块定义(.DLL)文件的需要。你可以为数据和对象使用dllimport和dllexport修饰符。dllimport和dllexport存储类修饰符必须与扩充的属

2012-12-20 17:00:38 572

转载 #ifdef __cplusplus extern "C" { #endif”的定义的含义

看一些程序的时候老是有“#ifdef __cplusplusextern "C" {#endif”的定义,搞搞清楚是怎么回事:Microsoft-Specific Predefined Macros__cplusplus Defined for C++ programs only. 意思是说,如果是C++程序,就使用extern "C"{而这个东东,是指在下面的

2012-12-20 16:58:31 443

转载 关于PASCAL 和 FAR

#define CALLBACK    __stdcall#define WINAPI      __stdcall#define WINAPIV     __cdecl#define APIENTRY    WINAPI#define APIPRIVATE  __stdcall#define PASCAL      __stdcall调用约定(Calling co

2012-12-20 14:29:11 495

转载 c++编译器为什么不支持模板的分离式编译

当我们声明和定义一个模板的时候,必须要让声明和定义放在一个文件里。否则编译器会报错。这就是为什么boost的实现文件的后缀名是hpp了。这其中的理由是什么呢?为什么会这样? 首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.

2012-12-14 14:58:37 404

转载 64位开发环境下编译32位dll文件

最近在做PH项目的时候,遇到了一个小问题。我们做的系统,算是在人家基础上的一个二次开发:我们用到他们设备,同时需要他们给我们提供接口。我们拿到接口,在32位系统上编译不会出问题,而在我这64位系统上编译总是提示错误:调用 Dll "试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)       我一开始的想法是在网上重新找一个的新

2012-12-13 14:24:50 1095

转载 [C/C++]堆栈指引

标签: 函数参数与局部变量 kernel linux 堆栈 it分类: C/CPlusPlus前言我们经常会讨论这样的问题:什么时候数据存储在堆栈(Stack)中,什么时候数据存储在堆(Heap)中。我们知道,局部变量是存储在堆栈中 的;debug时,查看堆栈可以知道函数的调用顺序;函数调用时传递参

2012-12-07 14:45:16 1801

转载 VC项目配置详解

一.IDE基础配置 1. 字体VC6中“Tools→Options→Format→Font”配置字体;VC2005中“工具→选项→环境→字体和颜色”配置字体。编写代码一般采用等宽字体,等宽点阵(位图)字体,相对矢量字体而言具有兼容性好和显示清晰的优点。常用的编程等宽字体包括Fixedsys(VC6和notepad御用字体)、Consolas、YaHei Mono。VC6默认可选

2012-12-05 16:43:47 991

转载 10+ powerful debugging tricks with Visual Studio

IntroductionDebugging is a major part of the development lifecycle. Sometimes challenging, sometimes puzzling, sometimes annoying, one for sure - it is unavoidable for any not-so-trivial program.

2012-11-27 16:38:25 549

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除