自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (5)
  • 收藏
  • 关注

原创 VC操作注册表

<br /><br />注册表的操作,API为我们提供了大约25个函数。他提供了对注册表的读取,写入,删除,以及打开注<br />册表及键值时所有函数,并且可以达到对注册表的备份,连接和对远端注册表进行查看等等。注册表对<br />整个系统十分重要,你在进行操作时,一定要先考虑清楚。这些函数有:<br />RegCloseKey RegConnectRegistry    RegCreateKey    RegCreateKeyEx    RegDeleteKey    RegDeleteVale  <br

2010-07-20 21:56:00 4626 1

原创 Windows静态库和动态库的创建和使用

偶们在实际的编程开发中,经常会遇到运行时无法找到某个DLL文件或者链接时无法找到某个LIB文件。然后,我们就开始乱GOOGLE一下,然后将VS2005的设置改变一下,或许就Ok了,我们将别人开发的DLL或者LIB导入到我们的编程中,那么这些lib,DLL到底是什么呢?下面,偶就细细道来。首先,偶们说第一个:静态链接库(Static Libary)偶们用VS2005做一个静态链接库先打开VS2005,新建à项目(staticCai)àWin32控制台应用程序新建static_lib.h 和static_lib

2010-07-16 20:37:00 32501 12

转载 Linux动态库和静态库的建立及使用方法

<br />和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法:<br />假设有下面几个文件:<br />头文件String.h,声明相关函数原形,内容如下:<br /><br />Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下:<br /><br />Strlnen.c:函数StrNlen的实现,获取给定字符串的长度,如果输入字符串的长度大于指定的最大长度,则返回最大长度,否者返回字符串的实际长度,内容如下:<br />生成静态库:<br />利用G

2010-07-16 20:32:00 1359

原创 Linux下Socket编程之UDP应用

<br />一。UDP版的echo Server<br />与TCP版的Echo Server类似,我们从Server Socket类中派生出Echo Server类。<br />class UDPEchoServer: public UDPServerSock{<br />public:<br />    explicit UDPEchoServer(<br />                unsigned short server_port,<br />                int pre

2010-07-16 20:26:00 2164

原创 Linux下Socket编程之UDP原理

<br />一。设计UDP Server类<br /><br />人们通常用电话连线来说明TCP协议,而UDP协议,则常常用邮递来做比喻。与TCP有连接的信息传输方式不同,UDP协议被认为是对底层IP协议简单的扩展:协议并不保证每个数据包都会到达目的地,也不保证到达的顺序,而仅仅就是“尽力”的发送每一个数据包。我在这篇教程中有时候使用“数据包”有时候使用“数据报”,广义的说,这两个词意思类似,有代表一个有大小边缘的数据块。但是,用“数据包”的时候,我想强调的是这个数据块中所传送的数据部分;而“数据报”则更强

2010-07-16 20:24:00 5705

原创 Linux下Socket编程之TCP应用

<br />现在,我们用前面所构建的socket类,重新设计《Linux下Socket编程之TCP Server端》中echo的服务器,然后设计客户端程序。<br />echo服务器的工作原理很简单:<br />1、接收客户端传来的信息;<br />2、将接收到的信息原封不动的返回给客户端。<br />可以看到我们所设计的TCPServerSock类具备了echo服务的所有数据成员,我们只需要添加一个具体的echo方法。因此,我们让设计的echo类从TCPServerSock类中派生出来。<br />//F

2010-07-16 20:20:00 949

原创 Win32下使用Socket:WinSock

<br />学习socket最好能有两台以上联网的电脑,以及能获得公网IP的网络接入方式。两年前,我主要使用的是一台win2k3和Debain Linux双系统的电脑,例外有台99年的老机器装着win98,而且没有装VC,测试相当的麻烦。现在买了笔记本,使用的是Vista的win32环境(32位),可以直接和老电脑的Linux联网进行测试。另外,网络环境也换成了电信的ADSL,贵了很多,为的就是能有一个公网IP。接下来的教程我会兼顾winsock的代码,这主要是因为winsock本身对socket几乎是兼容

2010-07-16 20:17:00 2225

原创 Linux下Socket编程之TCP原理

一。Socket异常信息之所以把对异常信息的介绍放到原理之前讲,是因为由于socket本身的复杂性,导致了产生各种异常的复杂性。我们应该时刻铭记的是,sokcet本身属于系统(OS),是系统对TCP/IP的实现,也就是说,socket发出的异常信息不代表程序出错,甚至不代表系统出错,而仅仅就是代表socket本身的各种异常情况。另外一点我觉得应该强调的是:socket不是TCP/IP;TCP/IP也不是socket。socket是为广泛的协议设计的,涉及TCP/IP的内容只是socket体系中一个很小的子集

2010-07-16 20:10:00 2621

原创 Linux下Socket编程之TCP Server端

<br />一。建模<br />绝大部分关于socket编程的教程总是从socket的概念开始讲起的。要知道,socket的初衷是个庞大的体系,TCP/IP只是这个庞大体系下一个很小的子集,而我们真正能用上的更是这个子集中的一小部分:运输层(Host-to-Host Transport Layer)的TCP和UDP协议,以及使用这两个协议进行应用层(Application Layer)的开发。即使是socket的核心部分,网络层(Internet Layer)的IP协议,在编程的时候我们也很少会感觉到它的存

2010-07-16 20:07:00 2363

原创 VC中#Pragma的使用方法(二)

<br /><br />在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作.<br />下面介绍了一下该指令的一些常用参数,希望对大家有所帮助!<br />       一. message 参数。<br />message <br />它能够在编译信息输出窗  <br />口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: <br />#pragma message(“消息文本”) <br />当编译器遇到这条指令时就在编译输出窗口中

2010-07-16 19:49:00 699

原创 VC中#Pragma的使用方法(一)

在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数。(1)message 参数。 Message 参数是我最喜欢的一个参数,它能够在编译信息输出窗 口中输出相应的

2010-07-16 19:47:00 874

转载 彻底解密C++宽字符:5、利用fstream转换

<br />C++的流和本地化策略集<br /><br />BS在设计C++流的时候希望其具备智能化,并且是可扩展的智能化,也就是说,C++的流可以“读懂”一些内容。比如:<br />std::cout << 123 << "ok" << std::endl;这句代码中,std::cout是能判断出123是int而"ok"是const char[3]。利用流的智能,甚至可以做一些基础类型的转换,比如从int到string,string到int:<br />std::string str("123");<

2010-07-16 19:43:00 2889 1

转载 彻底解密C++宽字符:6、国际化策略(完)

<br /><br />硬编码的硬伤<br /><br />我们现在知道,C/C++的宽窄转换是依赖系统的locale的,并且在运行时完成。考虑这样一种情况,我们在简体中文Windows下编译如下语句:<br />const char* s = "中文abc";<br />根据我们之前的讨论,编译器将按照Windows Codepage936(GB2312)对这个字符串进行编码。如果我们在程序中运行宽窄转换函数,将s转换为宽字符串ws,如果这个程序运行在简体中文环境下是没问题的,将执行从GB2312到UCS

2010-07-16 19:43:00 2626

转载 彻底解密C++宽字符:4、利用codecvt和use_facet转换

locale和facetC++的locale框架比C更完备。C++除了一个笼统本地策略集locale,还可以为locale指定具体的策略facet,甚至可以用自己定义的facet去改造一个现有的locale产生一个新的locale。如果有一个facet类NewFacet需要添加到某个old_loc中形成新new_loc,需要另外一个构造函数,通常的做法是:std::locale new_loc(old_loc, new NewFacet);标准库里的标准facet都具有自己特有的功能,访问一

2010-07-16 19:42:00 6295 1

转载 彻底解密C++宽字符:3、利用C运行时库函数转换

<br />std::locale<br /><br />通过前面两节的知识,我们知道了在C/C++中,字符(串)和宽字符(串)之间的转换不是简单的,固定的数学关系,宽窄转换依赖于本地化策略集(locale)。换句话说,一个程序在运行之前并不知道系统的本地化策略集是什么,程序只有在运行之后才通过locale获得当时的本地化策略集。<br />C有自己的locale函数,我们这里直接介绍C++的locale类。<br />先讨论locale的构造函数:<br />locale() throw();<br />

2010-07-16 19:41:00 3138

转载 彻底解密C++宽字符:2、Unicode和UTF

<br />Unicode和UCS<br /><br />Unicode和UCS是两个独立的组织分别制定的一套编码标准,但是因为历史的原因,这两套标准是完全一样的。Unicode这个词用得比较多的原因可能是因为比较容易记住,如果没有特别的声明,在本文所提及的Unicode和UCS就是一个意思。Unicode的目标是建立一套可以包含人类所有语言文字符号你想得到想不到的各种东西的编码,其编码容量甚至预留了火星语以及银河系以外语言的空间——开个玩笑,反正简单的说,Unicode编码集足够的大,如果用计算机单位来表

2010-07-16 19:40:00 2582

转载 彻底解密C++宽字符:1、从char到wchar_t

<br />“这个问题比你想象中复杂”<br />(我也学下BS的风格,虽然这句话是我自己临时想说的。^^)<br /><br />从字符到整数<br /><br />char是一种整数类型,这句话的含义是,char所能表示的字符在C/C++中都是整数类型。好,接下来,很多文章就会举出一个典型例子,比如,'a'的数值就是0x61。这种说法对吗?如果你细心的读过K&R和BS对于C和C++描述的原著,你就会马上反驳道,0x61只是'a'的ASCII值,并没有任何规定C/C++的char值必须对应ASCII。C/

2010-07-16 19:39:00 3280

SQLiteManager for Mac

请注意这个是版本3.8,注册码也只能支持3.x

2013-12-05

Ubuntu9.10 RC引导文件

这个当你需要装Windows,Ubuntu双系统时是必须的。

2010-01-29

explorer一个扩展小程序

可以扩展Windows explorer的功能,方便并且快速的跳转目录。

2010-01-29

Windows系统调试套件

Windows平台下,一整套调试工具,适合开发人员对Windows系统的调试编程。

2010-01-29

空空如也

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

TA关注的人

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