
C/C++
文章平均质量分 59
sulliy
这个作者很懒,什么都没留下…
展开
-
C++之模板
<br />模板能够直接支持通用型程序设计,即直接采用类型作为参数的程序设计。templates是节省时间和避免代码重复的极好方法,我们可以只输入一个类模板,就能让编译器实例化所需要的很多个特定类及函数。<br />1、声明的作用域。C的作用域延伸到由template<class C>作为前缀的声明的结束处。<br />这就是我们写一个类模板时,在类的声明之前写入template<class C>。在类外定义类的成员函数时又需要在函数实现之前写入template<class C>的原因。<br />2、ty原创 2010-07-12 00:07:00 · 840 阅读 · 0 评论 -
一个在UTF32、UTF-16、UTF-8中相互转换的C++程序
首先是最重要的版权信息。/* * Copyright 2001-2004 Unicode, Inc. * * Disclaimer * * This source code is provided as is by Unicode, Inc. No claims are * made as to fitness for any particular purpose. No warranti原创 2011-06-07 17:58:00 · 4626 阅读 · 1 评论 -
处理INI文件
简单的在开源中国上搜索了一下INI相关的项目,找到两个:MiniINI和SimpleINI。 MiniINI是一个开源的,非常高效的,并且非常容易上手的INI库。使用C++实现的,同时也可以操作CFG文件。它本身不依赖除标准库以外的任何库文件,能够在支持C99的各种编译器上编译。采用MIT/X许可证,有兴趣的可以参考:https://code.launchpad.net/miniini。到原创 2011-06-10 11:50:00 · 4045 阅读 · 0 评论 -
Windows文件变更监控
有的时候需要在新建、修改和删除文件时执行一些操作,这就需要监控文件的变更。http://zhanyonhu.blog.163.com/blog/static/16186044200882484143208/提出了3种方法来实现:1. 函数FindFirstChangeNoti原创 2011-08-01 00:47:50 · 11675 阅读 · 1 评论 -
支持选择文件和目录(可多选)的文件对话框CSelectDialog
MFC自带的CFileDialog不支持选择目录,而且多选文件配置也不方便。有一些实现比较好的目录选择对话框,但是既可以支持选择文件,又可以支持选择目录的非常难得。非常感谢Hojjat Bohlooli(software@tarhafarinin.ir)的工作,给我们提供了一个非原创 2011-08-04 01:15:09 · 6889 阅读 · 11 评论 -
使用NDK进行网络文件传输
想要通过网络传输文件,搜了不少代码,找到一个何意的真不容易。Marat Bedretdinov给了一个关于聊天程序的代码,里面包含NetLib模块,对网络提供了一个很好的界面,提供了多线程和事件通知。但是很复杂,源文件就有49个,还木有时间细看。有兴趣的可以看看。Sebast原创 2011-08-15 18:03:18 · 2984 阅读 · 0 评论 -
一个多线程队列模型
看看评价哈喃原创 2011-08-19 00:19:14 · 2565 阅读 · 0 评论 -
association,aggregation,composition有什麼差別?
class之間有三種關係,inheritance,implementation和association。inheritance和implementation在C++、C#、Java都有直接支援,所以不難懂,但association,aggregation和composition在转载 2011-08-18 23:40:38 · 1783 阅读 · 0 评论 -
将MFC CString转成STD string
MFC拥有其自己的字符串:CSting。我们经常发现有必要将一个Cstring转换为C++标准库中的std::string,这个函数如下:std::string CStringToSTDStr(const CString& theCStr){ // Convert the翻译 2011-04-05 19:09:00 · 5450 阅读 · 1 评论 -
CFileDialog会修改工作路径
CFileDialog会修改工作路径的,记得调用时带有标志OFN_NOCHANGEDIR 教训啊原创 2011-10-19 17:32:08 · 2552 阅读 · 0 评论 -
LabVIEW编写DLL
<br />LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G(Graphics)编写程序,是一种产生的程序是框图的形式。<br /><br />通过一个简单的例子,用LabVIEW来编写一个实现三个数相加的DLL。首先编写一个子VI实现两个数相加,再编写一个VI通过调用子VI实现三个数相加。<br /><br />为了使外原创 2011-05-27 15:28:00 · 14271 阅读 · 0 评论 -
PCRE函数简介和使用示例
PCRE是一个NFA正则引擎,不然不能提供完全与Perl一致的正则语法功能。但它同时也实现了DFA,只是满足数学意义上的正则。PCRE提供了19个接口函数,为了简单介绍,使用PCRE内带的测试程序(pcretest.c)示例用法。1. pcre_compile 原型: #include pcre *pcre_compile(const char *pattern, int options, const char **errptr, int *erroffset, const un原创 2011-03-13 23:56:00 · 34302 阅读 · 6 评论 -
类型转换
<br />不想类型转换。<br />类型转换主要有以下几种:<br />运行时检查的转换------dynamic_cast<type>(expr)<br />编译时检查的转换------static_cast<type>(expr)<br />不检查的类型转换------reinterpret_cast<type>(expr)<br />const转换------const_cast<type>(expr)<br />强制类型转换------(type)expr<br /> <br />dynamic_原创 2010-07-12 00:25:00 · 576 阅读 · 0 评论 -
C++中const重载
<br />众所周知,C++实现函数重载有两种情况:函数参数的类型不同,参数的个数不同。而与函数的返回值没有什么关系。<br />需要注意的是在如下情况下:<br />float f1(float a, float b){ //}flaot f1(float a, float b, float c = 0){ //}<br />下面的调用会产生歧义:<br />f1(2.0, 2.0);<br />言归正传,看下面一段代码:取自Effective C++<br /原创 2010-06-02 22:53:00 · 3398 阅读 · 0 评论 -
C++虚构造函数
<br />存在虚析构函数,而且如果类定义了operator delete(),它就应该有虚析构函数。那是不是存在虚构造函数呢?<br />答案是不存在,但我们可以虚拟实现它。<br />要构造一个对象,构造函数必须掌握它所要创建的对象的确切类型。因此,构造函数不能是虚拟的。构造函数并不是一个普通的函数,不能有指针指向构造函数。<br />但有的时候我们需要虚构造函数,可以绕过上述限制。通过定义一个函数,由它调用构造函数并返回构造起来的对象。<br />class Expr{public: E原创 2010-06-02 23:10:00 · 2474 阅读 · 0 评论 -
C++的继承与名字覆盖
<br />先看个例子。<br />class Base{private: int x;public: virtual void mf1() = 0; virtual void mf1(int); virtual void mf2(); void mf3(); void mf3(double); ...};class Derived: public Base{public: virtual void mf1(); void mf3原创 2010-06-20 15:40:00 · 1021 阅读 · 0 评论 -
_cdecl 和 _stdcall的区别
_cdecl 是C Declaration的缩写,表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数无需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。_stdcall 是Standard Call的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的函数在返回后清除,使用的指令是 retn X,X表示参数占用的字节数,CPU转载 2010-12-24 00:26:00 · 742 阅读 · 0 评论 -
Distinguish between pointers and references in C++
<br />Pointers and references look different enough (pointers use the “*” and “->” operators, references use “.“), but they seem to do similar things. Both pointers and references let you refer to other objects indirectly. How, then, do you decide when to转载 2010-11-23 11:53:00 · 696 阅读 · 0 评论 -
详解C++最新标准C++0x
<br />By Ajay Vijayvargiya | <br />Elaborating new C++ language features with a clear, sharp, and detailed discussion.Introduction<br />As you might be aware, the C++ language is being updated by the ISO standard. The codename for the new C++ language is C转载 2011-01-27 14:17:00 · 7854 阅读 · 0 评论 -
VS2008 Non-MFC Dll创建和调用
微软的Visual C++支持三种DLL,它们分别是Non-MFC Dll(非MFC动态库)、Regular Dll(常规DLL)、Extension Dll(扩展DLL)。Non-MFC DLL指的是不用MFC的类库结构,直接用C语言写的DLL,其导出的函数是标准的C接口,能被非MFC或MFC编写的应用程序所调用。Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的,它的一个明显的特点是在源文件里有一个继承CWinApp的类(注意:此类DLL虽然从CWinApp派生,但没原创 2011-02-19 23:23:00 · 5564 阅读 · 1 评论 -
VC使用DEELX正则引擎-DLL方式
DEELX 是一个在 C++ 环境下的与 Perl 兼容的正则表达式引擎。是 RegExLab 开展的一个研究开发项目。相比于GRETA很Boost来说是一个接口相对简单易用的正在引擎。其基本特点:支持与 Perl 兼容的正则表达式语法。 支持 IGNORECASE, SINGLELINE, MULTILINE 等常见匹配模式。 兼容性强,能在 vc6, vc7, vc8, gcc, Turbo C++ 等大多数 C++ 环境编译。 支持命名分组,条件表达式,递归表达式等多种高级特性。(1.2版本新特点)原创 2011-02-20 15:33:00 · 3492 阅读 · 0 评论 -
顺利编译GRETA
要想顺利编译GRETA还真有点不容易呢,最近装了Win7,安装VS2008装不上就只有装VS2005,还有风险呢。GRETA是一个微软员工Eric Niebler开发的开源正则引擎,可惜后面离开微软就没有再维护了。不过好东西还是值得学习使用的。把相关的文件导进VS2005,编译出现如下错误:1>e:/paper/regular expression/implements/greta/greta/restack.h(355) : warning C4346: “regex::hetero_stack::sta原创 2011-03-13 00:24:00 · 2702 阅读 · 2 评论 -
给程序加上皮肤
http://www.codeproject.com/KB/library/USkin.aspx选择的是Uskin,它有免费版的,网上皮肤也比较多够用了。可以到上面的网页上去看示例下载。PS:百度搜索搜出一大堆Shit 用法很简单了:USkinInit(NULL, NULL, _T("mecd.u3"));USkinExit();在任何窗体调用显示前,调用上面第一句原创 2011-10-26 13:55:04 · 2389 阅读 · 0 评论