编程语言
文章平均质量分 77
pizi0475
这个作者很懒,什么都没留下…
展开
-
C++经验之谈
我刚热恋“面向对象”(Object-Oriented)时,一口气记住了近十个定义。六年后,我从几十万行程序中滚爬出来准备写点心得体会时,却无法解释什么是“面向对象”,就象说不清楚什么是数学那样。软件工程中的时髦术语“面向对象分析”和“面向对象设计”,通常是针对“需求分析”和“系统设计”环节的。“面向对象”有几大学派,就象如来佛、上帝和真主用各自的方式定义了这个世界,并留下一堆经书来解释这个世界。转载 2012-05-16 21:41:26 · 1315 阅读 · 2 评论 -
C++ delete错误
1. 指针通过 new 或 new[] ,向系统“申请”得到一段内存空间,这段内存空间必须在不需要将它释放了。int* p = new int[100]; int girl[100]; p = girl; delete [] p; 灾难在 delete [] p 时发生。我们原意是要释放p最初通过new int[100]而得到的内存空间,但事实上转载 2012-05-17 10:06:04 · 1239 阅读 · 0 评论 -
C++经验谈(摘抄)
一、用C++ 而不是 C1.用const代替#define来创建常量2.用enum代替#define来创建常量集合3.用内联(inline)函数代替#define宏4.用new和delete代替malloc和free5.用输入输出流(iostreams)代替stdio6.选择C++语言而不是C预处理,但是要理解调试代码的时候需要使用预处理器7.检测浮点指针的值。浮点指针转载 2012-05-17 08:53:58 · 1533 阅读 · 0 评论 -
C++中的delete和delete[]区别
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义转载 2012-05-17 10:04:08 · 1054 阅读 · 0 评论 -
C++中delete和delete[]
【原文引用如下】:C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。 对于 (1),上面提供的程序a可以证明了 delete[] 和 del转载 2012-05-17 10:05:21 · 3365 阅读 · 0 评论 -
跨平台的.NET运行环境 Mono
Mono 是一个由Novell 公司主持的项目。该项目的目标是创建一系列符合ECMA 标准(Ecma-334 和Ecma-335)的.NET 工具,包括C# 编译器和共通语言执行平台。与微软的.NET Framework 不同,Mono 项目不仅可以运行于Windows 系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X 和Solaris。Mono 的开发工具 Mo转载 2012-06-09 10:11:08 · 1460 阅读 · 0 评论 -
BOO面向对象语言
BOO面向对象语言 Boo 是个面向对象语言,语法非常接近 Python,并且提供了许多可以扩充编译器的有趣特色,并且可以运行在 .NET Framework 或 Mono 上。 Boo 为开放源代码,使用MIT许可证/BSD许可证授权。缘起 在微软推出.NET Framework之后,作者Rodrigo Barreto de Oliveira非常喜爱这个环境,却又惊讶于转载 2012-06-09 10:06:16 · 1980 阅读 · 0 评论 -
Google C++ 编程风格指南 - 中文版
from http://code.google.com/p/google-styleguide/ 版本:3.133原作者:Benjy WeinbergerCraig SilversteinGregory EitzmannMark MentovaiTashana Landray翻译:YuleFox转载 2012-05-26 09:31:22 · 4129 阅读 · 0 评论 -
Metro UI
简介 Metro是由微软公司开发的内部名称为“ typography-based design language”(基于排版的设计语言)。最早出现在微软电子百科全书95,后来的产品如:windows媒体中心、Zune播放 器都有用到这项技术。该技术已于2010年初(美国)获得Metro UI专利批准(USPTO)如今该该技术被引入到微软最新开发的Windows Phon转载 2012-05-26 09:02:20 · 1973 阅读 · 1 评论 -
C++ 无名对象
可以直接调用构造函数产生无名对象。 例如,下面的代码在函数fn()中,创建了一个无名对象:class Student{public: Student(char*);};void fn(){ Student("Randy"); //此处为无名对象} 无名对象可以作为实参传递给函数,可以拿来拷贝构造一个新对象,也可以初始化一个引转载 2012-07-05 21:58:17 · 2829 阅读 · 0 评论 -
C++中你不知道的语法
传构造函数,不会引起拷贝构造函数的调用当传一个一个已经构造好的对象时,[cpp] view plaincopy#include #include #include #include using namespace std; class Foo { public:转载 2012-07-06 18:08:52 · 1336 阅读 · 0 评论 -
DLL 对C++类的封装
将C++类封装在DLL中,并在DLL中创建静态对象,在外部直接调用相关函数。 1, 打开VC2008创建新工程,选择Win32-> Win32 Porject,点击next。2, 选择Application type:DLL,点击finish即创建了一个非MFC DLL ------------------------------------因为我们创建的是非MFC的D转载 2012-07-19 07:27:36 · 1329 阅读 · 0 评论 -
C++ dll 封装实例
给一个dll封装的例子:/* 函数名称:FFT()* 参数:* complex * TD - 指向时域数组的指针* complex * FD - 指向频域数组的指针* r -2的幂数,即迭代次数* 返回值: 无。* 说明:该函数用来实现快速傅立叶变换*/ void FFT(com转载 2012-07-19 07:29:40 · 1611 阅读 · 0 评论 -
用VC写DLL
4.1一个简单的DLL 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。 如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程附件)。注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是第5、6节要转载 2012-07-19 21:37:20 · 1457 阅读 · 0 评论 -
DLL封装 C++
DLL,在windows和linux下都用,但是不太相同,因为微软的DLL的内存分配和普通编译成为函数之间的内存格式是不一样的,于是有了__declspec(dllexport)和__declspec(dllimport) ,前者输出DLL中的函数,后者调用的时候使用;相信在windows底下封装过DLL经验的人对于这两个东西还是很熟悉的。偶尔去掉它们,其实也不一定会出问题,但是在多线程的重复调用转载 2012-07-19 07:26:38 · 1141 阅读 · 0 评论 -
纯虚函数的使用汇总
http://hi.baidu.com/%C3%E2%B7%D1%B4%F3%BB%B0%D0%F2%C1%D0%BA%C5/blog/item/e8c7c10fc021a1e7aa645729.ht 一、抽象类含有纯虚函数的类被称为抽象类。抽象类是一种特殊的类,它是为了抽象和设计的目的而建立的,它处于继承结构的上层。抽象类是不能定义对象的,在实际中为了强调一个类是转载 2012-07-19 07:30:40 · 1097 阅读 · 0 评论 -
Dll制作
实现MFC扩展DLL中导出类和对话框 中国学生网 2006-03-03 07:30:11 作者:江上飞鸟 来源:vckbase 如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框。 一、创建MFC扩展DLL转载 2012-07-19 07:35:55 · 1521 阅读 · 0 评论 -
BCG界面库在VC工程中的应用步骤
BCGControlBar Library Professional Edition installation:整个库的源代码安装在\BCGCBPro 目录下面.可执行文件(*.dll)安装在 \Bin (for VisualStudio 6.0) 或\Bin7 (for VisualStudio .NET)下面。请在你的源代码中做如下的改变:在应用程序的Include路径转载 2012-08-03 07:19:07 · 2506 阅读 · 0 评论 -
关于BCG界面库
开发程序,经常为漂亮而有个性的界面犯愁。开发团队比较小,项目时间紧,任务重,可以选择已经成熟的界面库。我个人觉得BCG界面库好。现就简单介绍。 1、软件下载,可以从官网上下载:http://www.bcgsoft.com/download.htm2、微软Visual Studio 2008整合BCGControlBar技术,对使用BCGControlBar转载 2012-08-03 07:17:22 · 10335 阅读 · 0 评论 -
用VC++制作DLL经验一二
用VC++制作DLL经验一二 建立一个自己的DLL并在另一个应用程序中成功的调用它之后再阅读'一'、'二'. ---- DLL可以分为两个不同的类别:用C/C++(不用对象)编写的基于API的传统DLL和基于MFC对象的DLL. 一.两种类型的比较:---- 1. 基于MFC的DLL限制在使用MFC的编译器中. ---- 基于API的DLL可以从一种编译器移植转载 2012-07-19 07:33:17 · 1970 阅读 · 0 评论 -
DLL(动态链接库)专题
Windows API中所有的函数都包含在dll中,其中有3个最重要的DLL。 (1) Kernel32.dll 它包含那些用于管理内存、进程和线程的函数,例如CreateThread函数; (2) User32.dll 它包含那些用于执行用户界面任务(如窗口的创建和消息的传送)的函数,例如CreateWindow函数;转载 2012-07-19 07:25:18 · 1132 阅读 · 0 评论 -
C++编程实用技巧——专家讲述C++程序设计的窍门
从C转向C++对每个人来说,习惯C++需要一些时间,对于已经熟悉C的程序员来说,这个过程尤其令人苦恼。因为C是C++的子集,所有的C的技术都可以继续使用,但很多用起来又不太合适。例如,C++程序员会认为指针的指针看起来很古怪,他们会问:为什么不用指针的引用来代替呢?C是一种简单的语言。它真正提供的只有有宏、指针、结构、数组和函数。不管什么问题,C都靠宏、指针、结构、数组和函数来解决转载 2012-08-06 07:13:40 · 1497 阅读 · 1 评论 -
使用第三方开源库是否应该做二次封装
现在有大量的开源第三方库,大家几乎每个项目都有用到。而这些库基本都提供了非常友好的接口,供应用层使用。但是,考虑到版本升级,程序员的水平,甚至使用许可等方面的问题,我考虑对未来大多数要使用的第三方库进行二次封装。下面是我想到的基于多人开发,有可能发布多次升级版本的情况下的优缺点。希望大家参与讨论给出意见。谢谢。优点:1:当自己的软件版本升级时,可能会出现需要更换第三方库的情转载 2012-07-22 08:30:36 · 2914 阅读 · 1 评论 -
C/C++中动态链接库的创建和调用
动态连接库的创建步骤:一、创建Non-MFC DLL动态链接库1、打开File —> New —> Project选项,选择Win32 Dynamic-Link Library —>sample project —>工程名:DllDemo2、新建一个.h文件DllDemo.h #ifdef DllDemo_EXPORTS #define DllAPI转载 2012-07-22 21:43:37 · 1158 阅读 · 0 评论 -
DLL编写教程
半年不能上网,最近网络终于通了,终于可以更新博客了,写点什么呢?决定最近写一个编程技术系列,其内容是一些通用的编程技术。例如DLL,COM,Socket,多线程等等。这些技术的特点就是使用广泛,但是误解很多;网上教程很多,但是几乎没有什么优质良品。我以近几个月来的编程经验发现,很有必要好好的总结一下这些编程技术了。一来对自己是总结提高,二来可以方便光顾我博客的朋友。好了,废话少说,言归正传转载 2012-07-22 21:48:11 · 1040 阅读 · 0 评论 -
如何在dll中导出C++类
说明:新建两个工程,其中一个是dll工程(我的示例程序中这个工程名为DllClass),另一个是测试和使用dll的工程(名字为DllClassTest) 注意点: 1。Dll工程编译完成后,将.lib和.dll文件拷贝到测试和使用dll的工程的适当目录下(我的程序是release目录),然后将Dll工程中的导出类的头文件(以下简称头文件)拷贝到测试和使用dll的工程的适当目录下(在我的转载 2012-07-22 21:42:21 · 1331 阅读 · 0 评论 -
怎样从一个DLL中导出一个C++类
原文作者:Alex Blekhman 翻译:朱金灿 原文来源:http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx译文来源:http://blog.csdn.net/clever101 C++语言毕竟能和Windows DLLs能够和平共处。转载 2012-07-22 21:45:34 · 1339 阅读 · 0 评论 -
C++技巧(用DEF文件从DLL中导出C++类)
用DEF从DLL导出一个函数,或用__declspec(dlleXPort)指令从DLL中导出一类,想必大家已经很熟悉了,也经常使用着。这里向大家介绍一种用DEF文件从DLL导出一个类的方法。具体原理或为什么就不废话了,学会导出后,再慢慢回味吧。这里主要叙述操作步骤。1.打开VC6.0,新建一个"Win32 Dynamic-Link Library"工程,假设叫DefClass,在“Dll k转载 2012-07-22 21:46:51 · 2262 阅读 · 0 评论 -
error LNK2005 已经在***.obj中定义 错误主要原因
为什么会出现这个错误??“error LNK2005: 已经在aaa.obj中定义” 编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。弄清楚它形成的原因,就可以轻松解决它了。 造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量。可能存在两种情况: A、对于一些初学编程的程序员,有时转载 2012-07-22 16:34:37 · 1458 阅读 · 0 评论 -
使用windbg分析dmp文件定位程序bug
本文编写了一个简单能产生除数为0异常的程序,让其运行,产生崩溃,通过drwtsn产生dmp文件,然后通过windbg分析dmp文件,定位程序bug。目的:学习windbg基本功能使用。程序源代码:void Crash(void){ int i = 1; int j = 0; i /= j; }转载 2012-08-10 07:29:37 · 1351 阅读 · 0 评论 -
仅通过崩溃地址找出源代码的出错行
作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?……错啦!我相信我的看法是不会有人反对的——那就是,程序发生了崩溃!“该程序执行了非法操作,即将关闭。请与你的软件供应商联系。”,呵呵,这句 M$ 的“名言”,恐怕就是程序员最担心见到的东西了。有的时候,自己的程序在自己的机器上运行得好好的,但是到了别人的机器上就崩溃了;有时自己在编写和测试的过程中就莫名其妙地遇到了转载 2012-08-10 07:30:40 · 1774 阅读 · 0 评论 -
如何根据程序崩溃时的DMP文件使用WinDbg查找调用堆栈
HOW TO: 查找问题的异常堆栈时出现的 UnhandledExceptionFilter 调用堆栈跟踪中http://support.microsoft.com/kb/313109/zh-cn察看本文应用于的产品 本页概要使用 Windbg.exe 打开转储文件使用 Windbg.exe 确定异常堆栈参考展转载 2012-08-10 07:31:33 · 2117 阅读 · 0 评论 -
WINDBG分析DMP方法
上次发了2100蓝屏抓DMP分析案例这个帖子后,好多人想学怎么分析DMP,那我也是刚刚学的,简单的说下。http://bbs.icafe8.com/forum.php?mod=viewthread&tid=399075&fromuid=301231:先下载附件WinDbg,解压出来后,直接运行里面的windbg.exe。(或者可以自已去网上下的) WinDbg.part11.rar (转载 2012-08-10 07:35:43 · 9497 阅读 · 0 评论 -
主函数 main WinMain _tmain _tWinMain 的区别
main是C/C++的标准入口函数名WinMain是windows API窗体程序的入口函数。(int WINAPI WinMain()) 中 WINAPI是__stdcall宏,在windef.h中定义的。_tmain _tWinMain 是Unicode版本函数别名,对应与wmain和wWinMain。****************************************转载 2012-07-25 20:00:55 · 1302 阅读 · 0 评论 -
如何分析堆栈出错的 dmp 文件
分析程序出错生成的 dmp 文件是事后分析的主要工作。第一步往往都是使用 WinDbg 自带的 !analyze -v 命令先进行初步分析,得到出错地址和出错堆栈后再进行详细分析。本文介绍一个方法,当 !analyze -v 不好使的时候应该怎么得到出错地址和出错堆栈。int sum(int x, int y){__asm mov ebp, 0return (x +转载 2012-08-10 07:32:45 · 1907 阅读 · 0 评论 -
WinDbg 和 Dump 文件的使用
产品经过漫长的花期,即将结果。面临市场,面对用户,总有很多很多莫名奇妙的问题,让你每天不得不花大量的精力和时间在 bug 上面,我想问题最难的莫过于,问题的随机性,偶尔出现,无法捕捉。放假这几天在网络上逛了一圈,有些收获,也有惊喜,有些无法消化,便于以后记忆,按照鲁迅先生的拿来主义,拿来再说,大杂烩的笔记,以后有机会再作整理,文字大部分来自网络,感谢广大网友们的分享,感谢你们的无私。1转载 2012-08-10 07:33:31 · 1343 阅读 · 0 评论 -
利用MapFile定位程序崩溃(报红牌)时的代码位置
整理翻译:Mindon 2009 4-23 16:25原文:http://www.codeproject.com/KB/debug/mapfile.aspx1、生成MapFile Project---Setting---C++----DebugInfo,选择Line Numbers Only Project---Setting---Link---选择Generator mapf转载 2012-08-11 09:15:44 · 1278 阅读 · 1 评论 -
简单的定位到程序崩溃地点的方法
事例程序2k以上的操作系统,微软提供了一种新的功能Online Crash Analysis,简称OCA,就是当程序崩溃的时候我们看到的的那个对话框,问你是否把崩溃的一些信息发送到微软,各个软件厂商可以从微软那里根据收集到的程序版本和出错的地址等信息来完善自己的程序。如果你手头什么小工具都没有的情况下,下面这个方法可以很快的手工定位到出错地点。 点击“请单击此处”,可以看到详细的信转载 2012-08-11 09:14:27 · 1488 阅读 · 0 评论 -
开放源代码软件
开放源代码软件百科名片开放源码软件《open-source》是一个新名词,它被定义为描述其源码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。开放源码软件通常是有copyright的,它的许可证可能包含这样一些限制: 著意的保护它的开放源码状态,著者身份的公告,或者开发的控制。“开放源码”正在被公众利益软件组织注册为认证标记,这也是创立正式的开放源码定转载 2012-08-11 16:02:15 · 6685 阅读 · 0 评论 -
wxAui用法总结
wxAui Frame Management用法:1. 总体步骤# 安装wxpython2.8.*.*后import wx.aui# 初始化一个wxAui管理框架对象mgr = wx.aui.AuiManager()# 通知self作为管理所有子对象的父对象# self可以是wxWindow任何子对象mgr.SetManagedWindow(self转载 2012-08-03 21:29:17 · 3355 阅读 · 0 评论