
开发技术
逆风飞扬
思考着,奋斗着,冷眼观事,热心待人~
展开
-
VC++操作INI配置文件的实现
<br />一.将信息写入.INI文件中.<br /><br />1.所用的WINAPI函数原型为: <br />BOOL WritePrivateProfileString(<br />LPCTSTR lpAppName,<br />LPCTSTR lpKeyName,<br />LPCTSTR lpString,<br />LPCTSTR lpFileName<br />); <br /><br />其中各参数的意义:<br /><br /> LPCTSTR lpAppName 是INI文件中原创 2010-08-20 09:47:00 · 2172 阅读 · 0 评论 -
C++虚函数表解析(转) ——写的真不错,忍不住转了
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。 当然,相转载 2011-03-18 10:55:00 · 934 阅读 · 0 评论 -
C语言实现基本排序算法----排序(直接插入排序,SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序)
//C语言程序----排序(直接插入排序,SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序)//调试成功运行#include "iostream"#include "stdlib.h"#include "stdio.h"#include "malloc.h"typedef struct{int key;int otherinfo;}Redsize;typedef struct{ Redsize r[100];int length;}Sqlist;Sqlist L;int n;int LT(int x原创 2011-03-30 21:16:00 · 4222 阅读 · 0 评论 -
10个效果最佳的编程字体
<br />编写程序时,对字体的选择虽然不是最重要的,但也是必不可少的。一个好的字体选择势必会让你事半功倍!<br />10.Courier<br />Courier new是Courier的变形,由于可以轻易的对齐字段的左右边界,是编程中最常用的字体,经常被作为默认字体使用。这个字体看上去很死板,在使用这个字体时最好调整一下大小,并开启anti-aliasing(边缘柔化或抗锯齿)。<br /><br />9.Andale Mono<br />它比Courier系列的字体看上去要舒服一点,由于在很多系统中原创 2011-05-27 21:05:00 · 3141 阅读 · 0 评论 -
分享我的书架:一个五年程序员的学习观
<br />去年写了一篇文章《一个工作3~4年程序员的年度学习计划》,里面列出了一些计划阅读的书目。一年过去了,进度很一般。不过也许这个计划本身就有问题。<br />今天看了李开复发的一篇微博,很有感慨:<br />“天下古今之庸人,皆以一惰字致败。天下古今之才人,皆以一傲字致败。 -- 曾国藩”<br />我是一个庸人,去年浪费了很多的时间,今年要更加努力的学习了。<br />回到今天的正题。去年以及前些时候为了我的学习计划倒是收集了很多书目,同时我也负责我们研发部门买书,所以买了很多非常好的书,今天和大转载 2011-04-11 10:56:00 · 1157 阅读 · 4 评论 -
数据库建表-- 一对多/多对一/一对一/多对多 关系
关联映射:一对多/多对一存在最普遍的映射关系,简单来讲就如球员与球队的关系;一对多:从球队角度来说一个球队拥有多个球员 即为一对多多对一:从球员角度来说多个球员属于一个球队 即为多对一数据表间一对多关系如下图: 关联映射:一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。数据表间一对一关系的表现有两种,一种是外键关联,原创 2011-06-11 18:42:00 · 8821 阅读 · 1 评论 -
详解C#委托、时间和Lambda表达式
关于这个论题,Delegates, Events, and Lambda Expressions 对此有比较深入的分析,可以参考。C# vs C++之一:委托 vs 函数指针 比较了委托和C++指针的区别。.NET 中的委托确实和C/C++的函数指针非常相似。它是一个值类型,它包装了一个指向方法的引用。它的作用也是为了能够将方法和变量一样作为参数传递。委托的典型应用是控件的事件处理方法转载 2011-06-11 21:28:00 · 1202 阅读 · 0 评论 -
写给即将入行的程序员的一封信
导读:原文作者Akash发表的一篇《An open letter to those who want to start programming》,译文由伯乐在线整理编译《写给即将入行的程序员的一封信 》。文中阐述给新手程序员的一些建议。不管你是程序员高手亦或者是新手,文中的见解都值得我们学习。内容如下:首先,欢迎来到程序员的世界。在这个世界上,不是有很多人想创造软件并解决问题。你是一名ha翻译 2011-06-13 15:19:00 · 669 阅读 · 0 评论 -
程序员成长的10个阶段
导读:本文节选自机械工业出版社《程序员成长路线图》一书。该书的作者N216、张磊和吉阳一起回忆和总结了自己几十年的程序员成长经历,对当前程序员关心的热点、重点、难点问题给出了自己的看法和建议。通过对程序员的成长阶段进行划分,使得各个阶段的程序员都可以“按图索骥”,解决自己所遇到的问题。 图书封面: <img style="cursor: pointer;" onclick="functio翻译 2011-06-13 15:21:00 · 723 阅读 · 0 评论 -
2011年度全球50个最佳网站
Music & Video (音乐及视频类网站)1.8tracks8tracks是一个自称“手工制作”的互联网音乐广播网站。允许用户把自己的音乐做成一个音乐合辑,通过8tracks上传到网络,方便用户寻找、分享新音乐。2.HBO GOHBO GO是HBO推出的线上翻译 2011-08-18 12:44:32 · 2265 阅读 · 0 评论 -
酷壳网陈皓:开发者实用学习资源汇总
导读:本文是酷壳网(CoolShell)陈皓收集的一些学习资源和文章,涉及的知识面可能比较泛,其主要目的在于分享,希望开发人员会喜欢。Web开发Javascript Garden,这是学习Javascript最好的网站了。http://bonsaiden.github.com/JavaScript-Garden,这个文档由两个StackOverflow的人写成:Ivo Wetzel(W原创 2011-11-25 10:17:18 · 1506 阅读 · 0 评论 -
WWDC 2012 有哪些亮点
苹果真心数据狂人,App Store 里面绑定了4亿信用卡,300亿下载量,50亿开发者收入。任何一个数字都足够让人羡慕死。失物招领模式很有新意,对于经常丢东西的人是个巨大的福利。Passbook这个东西估计很多人想多,但是都没有实力去做,现在苹果自己做了。易用性非常高的东西,以后出门可以少带很多卡了。苹果连续收购了一堆制图公司(Placebase、Poly9、C3 Technologies)原创 2012-06-19 11:16:18 · 1263 阅读 · 0 评论 -
Compass用法指南
几个月前,我介绍了Sass的用法。Sass是一种"CSS预处理器",可以让CSS的开发变得简单和可维护。但是,只有搭配Compass,它才能显出真正的威力。本文介绍Compass的用法。毫不夸张地说,学会了Compass,你的CSS开发效率会上一个台阶。本文假设你已经掌握了CSS的主要用法,如果你还懂Sass,那就更好了。但是不懂Sass,一样可以阅读本文。一、Compass是原创 2012-11-30 15:08:53 · 1070 阅读 · 0 评论 -
四十个最有用的搜索引擎和英文IT博客
以下是关于搜索引擎和IT技术的一些权威的博客站点,大部分是英文的, Google的系列官方BlogGoogle黑板报 (RSS) (唯一的中文版,以下全是英文的)Official Google Blog (RSS)Blogger Buzz (RSS)Official Google Reader Blog (RSS)Inside AdSense (RSS)Inside AdWor原创 2013-04-04 20:03:41 · 1498 阅读 · 0 评论 -
用 Feedly Reader 的 Chrome 扩展在 Feedly 里找回 Google Reader 那段欢乐时光
也许已经有不少人开始转向Feedly好在7月1日Google Reader死亡大限之日到来前提前适应一下,如果你还是觉得别扭时不时想起过去在Google Reader里的美好时光,不妨试试Feedly Reader这枚扩展,它可以将Feedly变成Google Reader的外形,让你假装还在使用Google Reader。Feedly也宣布他们会打造一个类似Google Reader原创 2013-04-22 11:12:10 · 948 阅读 · 0 评论 -
linux sort 命令 指定分隔符
linux下的sort命令可以对文本的某些字段进行排序,而字段之间的分隔符默认是空格,如果想换成别的,则需要加参数-t。但是对于tab分隔符,还是得稍微注意一下。比如下面的命令:$sort -t '\t' -k3,3n a.txt >a.sortsort: multi-character tab `\t' (出错)这个不能按照tab分隔符进行字段排序,换成如下原创 2014-07-25 13:10:41 · 24367 阅读 · 0 评论 -
C#中对象的序列化与反序列化
最近写的东西和网络通信有关,Socket的Send方法只能传byte数组,这才用到了序列化和反序列化的问题。首先需将类型声明为可序列化: [Serializable] public class Test { ... }然后我是将序列化和反序列化的方法写成了静态方法。反正这俩方法就只是用的,基本可以当成是过程语言的函数来用。实现方式如下: /// /// 序列化 /// /// 要序列化的对象 /// 数据缓冲区原创 2011-02-24 11:06:00 · 1024 阅读 · 0 评论 -
工厂模式+配置文件+反射 实现数据库访问程序
<br />基本介绍:<br /> <br />反射:去某个地方找应该实例化的类:<br /> <br />Assembly.Load("程序集名称").CreateInstance("命名空间.类名称")<br /> <br />return (IUser)Assembly.Load("抽象工厂模式").CreateInstance("命抽象工厂模式.Sqlserver")<br />or:<br />return (IUser)Assembly.Load("抽象工厂模式").CreateInstance原创 2011-02-23 21:32:00 · 1210 阅读 · 0 评论 -
在CXXFrame里包含CXXView头文件出错的问题
解决 在CXXFrame里包含CXXView头文件出错的问题在CXXFrame里要调用当视类里的函数就要用到 CXXView *pView = (CXXView *)GetActiveView();<br />注:多文档中要在CChildFrame中调用这样就要包含CXXView的头文件。但编译时会提示:XXView.h(16): error C2143: 语法错误 : 缺少“;”(在“*”的前面)XXView.h(16): error C2501: “CScribbleView::CScribbleDoc转载 2010-08-24 13:31:00 · 1204 阅读 · 0 评论 -
SDI多视图切换的方法
<br />新建SDI工程<br />在插入菜单增加多两个CView类,进入这两个类的.h文件,把构造函数和析构函数都放到Public区<br /><br />在APP的类.h文件中,增加下面几个public成员<br />CView* m_pOldView;<br />CView* m_pNewView; //在多少个视图就要加多少个这样的指针<br />CView* m_pNewView3; //这是第三个视图的指针<br /><br />CView* SwitchView( ); /原创 2010-08-27 09:41:00 · 1329 阅读 · 0 评论 -
VS2008中,VC++开发时添加自定义的消息时,发生错误的解决办法
vs08中,用VC++进行开发时,在处理自定义消息及响应函数的过程中出现以下error:<br />无法从“void (__thiscall CMainFrame::* )(BYTE *,BOOL *)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)<br />解决办法:<br />返回值改成LRESULT,同时给自定义消息响应函数增加两个形参:(WPARAM,LPARAM ),消息响应函数中返回 true.<br />注:自定义消息的返回值为LRESULT原创 2010-10-03 19:22:00 · 1231 阅读 · 0 评论 -
vista和win7下如何用管理员身份运行cmd
在vista和win7下要想以管理员身份运行cmd,可以找到cmd,点右键选择“以管理员身份运行”,要想每次都以管理员身份运行,解决方法:1. 点击开始菜单; 在搜索框中输入“cmd”,将会在返回的搜索结果中看到cmd的快捷方式; 2. 右键单击该快捷方式; 在弹出菜单中选择“附到『开始』菜单”(“Pin to Start Menu”),这样,该快捷方式便出现在开始菜单上;3. 接下来我们设置操作权限。右键单击刚才创建的命令行项,选择属性; 点击高级按钮以打开高级属性对话框; 勾选“请以管理员身份运行该程序原创 2010-11-27 18:41:00 · 30389 阅读 · 3 评论 -
CString,string,char*, int之间的常用转换
1 string转CStringCString.format("%s",string.c_str());2 CString 转 stringUNICODE编码:<br />CString inStr;<br />setlocale(LC_ALL,"chs");<br />char* p = new char[...];//足够长<br />wcstombs( p , str , str.GetLength() );<br />string outStr = p; <br />ASCII编码:<br />CS原创 2010-10-06 16:59:00 · 938 阅读 · 0 评论 -
VS2008如何为工程添加lib文件
<br />工程中引用DLL时,有时需要添加lib文件,VS2008中添加LIB文件与VC6中不太一样,操作如下:<br /> <br />VS2008中如何加lib引用 lib引用有两种方法: <br />1.#pragma comment(lib,"opengl32.lib")<br /> <br />2.选择project --> XX properties... --> linker --> Input --> Additional dependences,在其中加入lib文件名即可。原创 2010-10-07 21:10:00 · 7089 阅读 · 0 评论 -
UBUNTU 10.10安装MAC主题的多种方法
<br />Mac4Lin是一套GNOME桌面环境的主题美化包,包括了GTK+控件、Metacity/Emerald窗口装饰、GNOME图标、鼠标指针、Firefox主题等几乎所有可以美化的组件。<br /> <br />从http://sourceforgenet/projects/mac4lin下载最新版本的mac4lin然后:$ tar zxvf Mac4Lin_v1.0_RC1.tar.gz<br />$ cd Mac4Lin_v1.0_RC1/<br />$ sudo ./Mac4Lin_Inst原创 2010-11-27 21:56:00 · 1101 阅读 · 0 评论 -
vc++开发技巧集锦
<br /><br />[1]//防止程序的多个实例同时运行<br />HANDLE hMutex=CreateMutex(NULL,FALSE,"IADSOnlyOnce");/命名Mutex是全局对象 在所有的process都可以访问到 <br />if(ERROR_ALREADY_EXISTS==::GetLastError())<br />{ <br />AfxMessageBox("该程序已经在运行中...");<br />ExitProcess(1);<br />} <br />[2]//在MF原创 2010-10-11 15:56:00 · 867 阅读 · 0 评论 -
__cdecl __stdcall各种调用约定详解
<br />调用协定(Calling Conventions)详解<br />资料收集:heartfly<br />学习时间:2010-10-11<br />what are the calling conventions? When a function is called, the arguments are typically passed to it, and the return value is retrieved. A calling convention describes how the原创 2010-12-17 15:42:00 · 1668 阅读 · 0 评论 -
GCC中文手册
<br />作者:徐明 <br />警告 <br />本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义. 除非有人自愿维护,否则本手册页不再更新.如果发现手册页和软件之间有所矛盾,请查对Info文件, Info文件是权威文档. 如果我们发觉本手册页的内容由于过时而导致明显的混乱和抱怨时,我们就停止发布它.不可能有其他选择,象更新Info文件同时更新man手册,因为其他维护GNU CC的工作没有留给我们时间做这个. GNU工程认为man手册是过时产物,应该把时间用到别的地方. <br />如果转载 2010-12-28 17:26:00 · 1253 阅读 · 0 评论 -
汇编中各寄存器的作用
<br />最近用到汇编,看到这篇文章,文章的原出处已经查不出来了,但觉得不错,所以转出来,当作备份学习。<br />4个数据寄存器(EAX、EBX、ECX和EDX)<br />2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)<br />6个段寄存器(ES、CS、SS、DS、FS和GS)<br />1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)<br />1、数据寄存器<br />数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的原创 2011-01-11 09:41:00 · 986 阅读 · 0 评论 -
BIOS中断大全
<br />BIOS中断:<br />1、显示服务(Video Service——INT 10H) <br />00H —设置显示器模式0CH —写图形象素<br />01H —设置光标形状0DH —读图形象素<br />02H —设置光标位置0EH —在Teletype模式下显示字符<br />03H —读取光标信息0FH —读取显示器模式<br />04H —读取光笔位置10H —颜色<br />05H —设置显示页11H —字体<br />06H、07H —初始化或滚屏12H —显示器的配置<br /转载 2011-01-11 14:44:00 · 810 阅读 · 0 评论 -
C语言v宏定义技巧
<br /> <br />C语言常用宏定义<br /><br /><br />01: 防止一个头文件被重复包含<br />#ifndef COMDEF_H<br />#define COMDEF_H<br />//头文件内容<br />#endif<br />02: 重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。<br />typedef unsigned char boolean; /* Boolean value type. */<br />ty原创 2011-02-26 20:23:00 · 806 阅读 · 0 评论 -
WIN7下安裝vs2008 sp1补丁失败的解决办法
<br /> 由于Windows 7自带了.NET Framework 3.5 SP1还有其它一些原因, 所以在安装VS 2008 SP1的时候会发生fatal error during installation的错误,经过网上查找及实验触决这一问题有两种方法:办法一是改安装脚本ParameterInfo.xml绕过语言包的安装;办法二是安装到该包时骗过安装程序返回成功结果就可以.<br /> <br />办法一:<br /> <br />将SP1的ISO文件解压缩出来, 找到ParameterInfo.x原创 2011-02-28 16:35:00 · 3449 阅读 · 0 评论 -
strlen与sizeof的区别
strlen与sizeof的区别1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''/0''结尾的。4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。 5.大部分编译程序在编译的时候就把sizeof计算过了 是类型或是变量的长度这就是sizeof(x)可以用转载 2011-03-06 19:14:00 · 678 阅读 · 0 评论 -
TinyXML:一个优秀的C++ XML解析器
/*读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。DOM模型即文档对原创 2014-10-25 12:06:05 · 769 阅读 · 0 评论