![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
ghlfllz
这个作者很懒,什么都没留下…
展开
-
当析构函数遇到多线程──C++ 中线程安全的对象回调
当析构函数遇到多线程── C++ 中线程安全的对象回调 陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice请尽量阅读本文 PDF 版:http://www.cppblog.com/Files/Solstice/dtor_meets_mt.pdf 豆丁亦可,内容略微滞后: http://www.docin.com/p转载 2014-07-04 18:50:00 · 1507 阅读 · 0 评论 -
说明以下关键字的作用 auto static register const volatile extern
请参考:http://blog.csdn.net/ghlfllz/article/details/7570736(1)auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。(2)register 这个关键字命转载 2012-05-15 23:02:40 · 447 阅读 · 0 评论 -
一组C++中的字符串与数字的互转函数
一组C++中的字符串与数字的互转函数#include #include templatestd::string number2string(VT number){std::stringstream sst;sst return sst.str();}templateVT string2number(const std:原创 2012-05-13 18:02:25 · 587 阅读 · 0 评论 -
C++ 程序路在Linux上Crash时生成Carsh报告(Core Dump)
C++ 程序路在Linux上Crash时生成Carsh报告(Core Dump)包含如下头文件#include #include 在主函数中添加如下代码段:#ifndef WIN32struct rlimit r;getrlimit(RLIMIT_CORE, &r);r.rlim_cur = r.rlim_max;setrlimit(RLIM原创 2012-05-13 17:37:39 · 4530 阅读 · 0 评论 -
C++单实例类的创建
如何创建单实例类1、在头文件中定义如下两个类class noncopyable{protected:noncopyable() {}~noncopyable() {}private:noncopyable( const noncopyable&);const noncopyable& operator = (const noncopyable &);原创 2012-05-13 17:33:03 · 851 阅读 · 0 评论 -
用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(二)
用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(二)本文提供了Daemon程序信号量控制的一个简单例子,其他相关文章请见:用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(一)用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(三)在simple.c中添加函数void signal_handle原创 2012-05-13 22:22:30 · 879 阅读 · 0 评论 -
用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(三)
用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(三)本文提供了Daemon程序的SHELL管理脚本的一个简单例子,其他相关文章请见:用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(一)用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(二)1、首先(一)中所述的代码中添加如下内容:追加头文件引用:原创 2012-05-27 17:26:32 · 1376 阅读 · 0 评论 -
用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(一)
用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(一)本文提供了一个Daemon程序的简单实例,更多高级应用,请参考:用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(二)用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(三)1、编写代码,命名为simple.c#include #inclu原创 2012-05-13 21:49:34 · 1762 阅读 · 0 评论 -
一个C++代码DEBUG时跳到错误的函数中的怪问题
一个C++代码DEBUG时跳到错误的函数中的怪问题近日写了一个加解密库,因为要在C#中访问,因此该库全部定义为API接口并通过.def文件申明外漏的接口,Debug版本的输出文件是DDToolsD.dll,Release版本的输出文件是DDTools.dll其中有一个接口用于通过SHA1计算HASH,因为要在C#中调用,将HASH值转换为HEX Code以后返回生成HE原创 2011-12-13 15:22:27 · 1076 阅读 · 0 评论 -
全局变量、extern/static/const区别与联系
请参考:http://blog.csdn.net/ghlfllz/article/details/7570732在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常转载 2012-05-15 23:03:52 · 462 阅读 · 0 评论 -
Linux下使用C++来编写PHP扩展库
Linux下使用C++来编写PHP扩展库一、获取并解压缩PHPwget http://docs.php.net/get/php-5.2.5.tar.bz2/from/cn.php.net/mirrortar -jxf php-5.2.5.tar.bz2cd php-5.2.6/ext./ext_skel --extname=php_cxx_sample注:p原创 2012-05-19 22:10:51 · 2144 阅读 · 0 评论 -
RtlCompareMemory参考手册
RtlCompareMemoryThe RtlCompareMemory routine compares blocks of memory and returns the number of bytes that are equivalent.SIZE_T RtlCompareMemory( IN CONST VOID *Source1 , IN转载 2012-10-18 23:42:34 · 3638 阅读 · 0 评论 -
ScottGu的VS2008 & VS2005两个配色方案[黑褐色]
ScottGu的VS2008 & VS2005两个配色方案[黑褐色]效果图如下:下载链接:For 2008For 2005原创 2014-03-10 22:07:11 · 4380 阅读 · 1 评论 -
Windows下用C++关闭某个窗口的简单方法
Windows下用C++关闭某个窗口的简单方法头文件中定义:BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);代码中添加:#include BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam){char wtitle[512];原创 2014-03-10 22:12:36 · 7595 阅读 · 0 评论 -
error PRJ0003 : Error spawning 'cmd.exe'.
error PRJ0003 : Error spawning 'cmd.exe'.Visual Studio编译c++项目的时候出这么一个错,试了下cmd.exe好好的呆在system32目录下,在运行中输入cmd也能正确启动命令行,在命令行输入ipconfig能得到正确的响应。仔细想了一下,可能是刚装完JDK把系统环境变量PATH修改了原因,导致Visual Studio原创 2013-12-04 23:44:00 · 1347 阅读 · 0 评论 -
error:2014 Commands out of sync; you can't run this command now
error:2014 Commands out of sync; you can't run this command now原因有三:其一、PrepareStatement中返回了多个记录集其二、用MySQL C API建立链接的时候要添加加选项CLIENT_MULTI_STATEMENTS 或 CLIENT_MULTI_RESULTS,以便可以返回多个记录集其三、返回了原创 2013-12-04 23:36:57 · 4649 阅读 · 0 评论 -
uuid in linux vs uuid in window[Parser]
uuid in linux vs uuid in windowYou are trying to transform a string uuid into an uuid:Use:Under windows:#include原创 2011-10-15 15:45:36 · 1369 阅读 · 1 评论 -
Linux & Windows上生成UUID/GUID
Linux & Windows上生成UUID/GUID请见如下相关文章:boost uuiduuid in linux vs uuid in window[Parser]GUID是微软对Distributed coumputing environment (DCE) universally unique identifier 的实现,而在Linux下则称作U原创 2013-12-04 23:05:19 · 17873 阅读 · 0 评论 -
boost uuid
boost uuiduuid: uuid库是一个小的使用工具,可以表示和生成UUID UUID是University Unique Identifier的缩写,它是一个128位的数字(16字节),不需要有一个中央认证机构就可以创建全国唯一的标示符。别名:GUID uuid位于名字空间boost::uuisd,没有集中的头文件,把功能分散在了若干小文件中,因此为了使用uuid转载 2013-11-22 11:41:12 · 3268 阅读 · 0 评论 -
C++检测系统是否已经安装了.NET Framework
C++检测系统是否已经安装了.NET Framework 今天因为阴差阳错,进入到了公司的技术部,本来是来这边处理个网站项目的,不过出了点变卦,所以弄了下C++的东西C++检测系统是否已经安装了.NET Framework的功能,主要是根据注册表来进行判断的。现在代码分享如下:// checknet.cpp : 定义控制台应用程序的入口点。//#inclu转载 2012-12-29 20:54:19 · 5632 阅读 · 0 评论 -
Linux上用Eclipse CDT开发c++项目的实例
Linux上用Eclipse CDT开发c++项目的实例我们以 boost的reg_ex为例子首先,我们需要安装Boost,这不是本文要介绍的主要内容,这里只简单说一下找好安装包以后,执行./configure,make,make install。Boost默认安装在/usr/local目录下,头文件在/include目录下,库在/lib目录 下在/原创 2011-10-15 23:40:35 · 4616 阅读 · 2 评论 -
Web Service学习笔记
Web Service学习笔记转自:http://blog.csdn.net/qjyong/article/details/2148558Web Service概述 Web Service的定义 W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的转载 2011-10-15 16:30:29 · 559 阅读 · 0 评论 -
使用Wininet发送短信
<br />转自:http://blog.csdn.net/wei801004/archive/2005/10/22/513670.aspx<br /> <br />如果能够使自己程序具有短信发送功能,那将会使您的程序蓬荜生辉,特别是通讯录等程序。通常在程序中发送短信有两种方式,一种是使用GSM Modem通过计算机串口编程发送短信,这种方式需要购置硬件设备,既不方便又不经济!另一种方式是通过网络发送,我们可以先在163.com等网站上注册一个用户,然后通过这些具有短信发送功能的网站发送短信。这种方式比较经转载 2011-01-02 17:59:00 · 490 阅读 · 0 评论 -
Wininet概述
<br />转自:http://blog.csdn.net/kornz2003/archive/2009/12/31/5105725.aspx<br /> <br /><br />⊙ WinInet 概述<br />⊙ Hinternet 句柄的层次关系<br />⊙ HTTP 函数层次关系<br />⊙ 典型的 HTTP 客户端程序的处理流程<br />1、普通 WinInet 处理函数<br />⊙ InetrnetOpen 初始化 WinI转载 2011-01-02 17:58:00 · 743 阅读 · 0 评论 -
关于Winnet的若干整理
<br />转自:http://blog.csdn.net/huzy204/archive/2007/12/12/1932109.aspx<br /> <br /><br />很久之前用VC做了一个基于http/https的项目,当时把用wininet开发http/https程序的各种问题都搞得十分清楚。由于当时没有总结,以至于现在又出现相同的问题,又得重新查资料,但还好代码在那里。一些问题看看代码也就明白。<br />后来由于工作变迁,离开了原来的公司。那部分代码现在也没有了。所以又得从头来过。<br /转载 2011-01-02 17:57:00 · 664 阅读 · 0 评论 -
gSOAP Web Service 客户端应用实例
<br />gSOAP Web Service 客户端应用实例<br /> <br />假设Web Service为Tester.asmx,接口名为getTime,参数为string类型,返回值为string类型,功能为在参数字符串后附加"(时间)"后返回,参数名为cData。<br /> <br />引用头:<br />#include <iostream><br />#include "./WSDL/stdsoap2.h"<br />#include "./WSDL/soapTesterSoapProx原创 2010-12-31 21:46:00 · 874 阅读 · 0 评论 -
gSOAP,C++的Web Service封装库
<br />gSOAP,C++的Web Service封装库<br /> <br />主页:http://www.genivia.com/Products/downloads.html<br /> <br />使用说明:<br />wsdl2h<br /> 功能:将WSDL文件转化为.h文件<br /> 参数:<br /> -c 转化为C代码<br /> -s 代表不使用,取而代之需要在工程中包含stdsoap2.cpp, stdsoap2.h(可以源代码包中找到原创 2010-12-31 21:38:00 · 905 阅读 · 0 评论 -
C++编写安全OCX,IE不弹出安全提示
下面将分别介绍在MFC ActiveX和ATL中如何标记一个控件为安全的控件。 要标记一个MFC ActiveX控件为安全,可以仿照下面代码修改而得: // CardScan.cpp : CCardScanApp 和DLL 注册的实现。#include "stdafx.h"#include "CardScan.h"#include "comcat.h"#include "strsafe.h"#include "objsafe.h"CCardScanApp theApp;const GUID CDEC原创 2010-10-10 14:52:00 · 5001 阅读 · 2 评论 -
怎么把OCX打包成cab文件
<br />生成TesterOCX.inf,输入如下内容:<br />[version]<br />signature="$CHICAGO$"<br />AdvancedINF=2.0<br /> <br />[Add.Code]<br />TesterOCX.ocx=TesterOCX.ocx<br /> <br />[TesterOCX.ocx]<br />file-win32-x86=thiscab<br />clsid={FED708DC-4B8A-47C1-961F-C117AFCD1369}<b原创 2010-10-10 14:33:00 · 3090 阅读 · 2 评论 -
在C#中如何调用C++编写的DLL
<br />有两种办法在C#中调用C++写的DLL的方法有两种:<br />1、COM<br />将C++代码封装成COM,然后在C#中引用<br /> <br />2、API<br />将C++代码封装成C接口的函数,类似于Windows的API,然后在C#中通过DllImport引用<br /> <br />例如:<br />c++头文件为<br />int _stdcall Decrypt(unsignec char *src, unsigned long src_len, unsigned char原创 2010-10-10 13:11:00 · 1847 阅读 · 0 评论 -
对代码进行内存泄漏检测的工具——Valgrind
<br /><br /> <br />网址:http://valgrind.org/Valgrind 介绍 <br />Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使用情况,比如C 语言中的malloc和free或者 C++中的new和 delete。使用Valgrind的工具包,你可以自动的检测许多内存管理和线程的bug,避免花费太多的时间在bug寻找上,使得你的程序更加稳固。Va转载 2011-05-08 11:38:00 · 544 阅读 · 0 评论 -
使用一些宏跟踪调试__LINE__ __FILE__ __DATE__ __TIME__ __STDC__
<br />使用一些宏跟踪调试__LINE__ __FILE__ __DATE__ __TIME__ __STDC__<br />使用一些宏跟踪调试<br />ANSI标准说明了五个预定义的宏名。它们是:<br />__LINE__<br />__FILE__<br />__DATE__<br />__TIME__<br />__STDC__<br />C++中还定义了 __cplusplus<br />如果编译器不是标准的,则可能仅支持以上宏名中的几个,或根本不支持。记住编译程序也许还提供其它预定义的宏名转载 2011-04-03 12:14:00 · 669 阅读 · 0 评论 -
GDB调试精粹及使用实例
<br />GDB调试精粹及使用实例<br /> <br /><br />在 gdb 提示符处键入help,将列出命令的分类,主要的分类有: <br /> * aliases:命令别名 <br /> * breakpoints:断点定义; <br /> * data:数据查看; <br /> * files:指定并查看文件; <br /> * internals:维护命令; <br /> * running:程序执行; <br /> * stack:调用栈查看; <br /> * statu:状态查看; <转载 2011-04-03 12:20:00 · 653 阅读 · 0 评论 -
【Google Protocol Buffer】Techniques 中文翻译
Techniques 技巧注:这是本人的翻译,可能不准确,可能有错误,但是基本上可以理解,希望能对大家有所帮助!(转载请注明出处:本文来自learnhard的博客:http://www.codelast.com/& http://blog.csdn.net/learnhard/)· Streaming Multiple Messages· Large Data Sets· Union Types· Self-describing Message转载 2011-05-08 10:45:00 · 971 阅读 · 0 评论 -
【Google Protocol Buffer】Style Guide中文翻译
<br />Style Guide 风格指南注:这是本人的翻译,可能不准确,可能有错误,但是基本上可以理解,希望能对大家有所帮助!(转载请注明出处:本文来自learnhard的博客:http://www.codelast.com/& http://blog.csdn.net/learnhard/)<br />This document provides a style guide for .proto files. By following these conventions, you'll make yo转载 2011-05-08 10:49:00 · 614 阅读 · 0 评论 -
【Google Protocol Buffer】概览
<br /><br />转自:http://blog.csdn.net/learnhard/archive/2010/08/26/5839061.aspx<br /> <br />很老的一篇译文了,可能已经不合时宜,但是总还是有一些参考价值的:开发向导<br />欢迎来到protocol buffers的开发者文档,protocol buffers是语言中立,平台中立,易于扩展的结构化数据序列化方法,它可以用在通讯协议,数据存储等方面。<br />这份文档的目标读者是试图在应用中使用protocol buf转载 2011-05-08 10:41:00 · 813 阅读 · 0 评论 -
【Google Protocol Buffer】Language Guide中文翻译
Language Guide 语言指南<br />注:这是本人的翻译,可能不准确,可能有错误,但是基本上可以理解,希望能对大家有所帮助!(转载请注明出处:本文来自learnhard的博客:http://www.codelast.com/ & http://blog.csdn.net/learnhard/)<br /><br /><br />· Defining A Message Type<br />· Scalar Value Types<br />· Op转载 2011-04-18 21:20:00 · 2106 阅读 · 0 评论 -
【Google Protocol Buffers】Protocol Buffer基础:C++篇
注:这是本人的翻译,可能不准确,可能有错误,但是基本上可以理解,希望能对大家有所帮助!(转载请注明出处:本文来自learnhard的博客:http://www.codelast.com/ & http://blog.csdn.net/learnhard/)This tutorial provides a basic C++ programmer's introduction to working with protocol buffers. By walking through creating a转载 2011-04-18 21:13:00 · 5662 阅读 · 1 评论 -
std::string的工具函数 - 用isspace实现trim函数
<br /><br />在CodeProject上有朋友说我不应该将空白字符限制在" /t/n/r" 以内,应该使用isspace来实现trim函数,以处理Unicode的空白字符。此话在理,所以将trim的三个函数改了一下。(参阅上一篇《std::string的工具函数》)string trimLeft(const string& str) {<br /> string t = str;<br /> for (string::iterator i = t.begin(); i != t.end转载 2011-04-03 12:34:00 · 2412 阅读 · 0 评论 -
std::string的工具函数 - 用ostringstream实现repeat
<br /><br /> repeat就是将某个字符重复若干次生成一个字符串。这在需要多个前导空格、文本行分隔线的时候非常有用。<br /> 用循环来实现repeat是多种方案中的一个。如果希望重复的内容是一个字符串的话,那目前看来,恐怕只能使用循环这种方案了。string repeat(string s, int count) {<br /> string r;<br /> for (int i = 0; i < count; i++) {<br /> r += s;<br转载 2011-04-03 12:35:00 · 853 阅读 · 0 评论