博文

微软一站式示例代码库(2010-10-23 12:51:00)

摘要:地址: http://topic.csdn.net/u/20101021/23/F97F8DA2-9237-4BA4-B750-DD8A01CDB58A.html 微软一站式示例代码库,速学速用,效率倍增  

  当今程序开发市场上缺乏统一集中的实例代码,来展现频繁使用的编程场景,而这正是大量微软客户非常需要的。在过去的一年里,活跃在开发技术社区里的微软技术支持工程师听到了开发人员的苦衷,完全自发创办了一个一站式的示例代码库:All-In-One Code Framework。该项目通过微软CodePlex 开源平台免费提供给全球开发人员。项目中已包含300多个实例代码,内容覆盖几乎所有的微软开发技术,并且已惠及全球超过100000开发人员。项目中每一个示例都经微软CSS工程师精心设计、筛选、编排和文档化,从而演示那些经常被客户问到、或被测试人员测试到的编程场景。今年一月,All-In- One Code Framework甚至在CodePlex站点上13,500个开源项目中跻身前20!  
   

  Code Framework收到来自于客户、MVP、微软产品组、合作伙伴等多方面的良好反馈。  
   

  比如:  
   

  “我很支持这样的项目,它绝对是传播微软技术的一个优良渠道。微软的技术虽然运用广泛,但是很难找到资料介绍实现和使用细节。这个项目很好地弥补了这点。”  
   

  “这些代码示例比书还要有价值!”  
   

  “我仔细研究了这个项目,你们的这个项目真是太令人吃惊了!我经常会面对纷繁复杂的小项目。我在处理这些项目的时候绝对会以你们的示例代码库作为出发点。非常感谢!”  
   
......

阅读全文(1551) | 评论:0

python中文乱码专题资料集合(2010-10-22 11:18:00)

摘要:来源:  http://blog.chinaunix.net/u2/84280/showart_2207975.html   字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。

因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码

代码中字符串的默认编码与代码文件本身的编码一致。
如:s='中文'
如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。

(与代码本身的编码是一致的!)

测试:
我的eclipse里面代码为utf-8编码的。然后我这样写代码
s="你好"
s=s.decode('gb2312').encode('utf-8')
print s
报错:
UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 2-3: illegal multibyte sequence
原因:因为我的文件为UTF-8编码的。所以你想用gb2312将其转成unicode是不可能的。
所以正确的写法应当是:
s="你好"......

阅读全文(6284) | 评论:32

[IBM]developerworks python技术专题(2010-10-22 11:15:00)

摘要:http://www.ibm.com/developerworks/cn/linux/theme/python/   发个链接, 有需要的朋友过去cc!!  

可爱的 Python 系列 使用 Python 构建网格应用程序 探索 Python 系列 Python Web 服务开发者系列 Python 与数据源 使用 Python 进行 socket、web、桌面开发 Python 设计模式系列 Python 扩展 Python 开发工具 Python 与系统管理


Python 是由 Guido van Rossum 开发的,可免费获得的。是一种非常高级的解释型语言。其语法简单易懂,而且面向对象的语义功能强大又灵活,Python 可以广泛使用并具有高度的可移植性。本专题内容包括可爱的 Python 系列、Python 探索系列、Python 扩展、使用 Python 进行各种应用开发等等。
可爱的 Python 系列 可爱的 Python:将 XML 和 Python 结合起来介绍 Python 的 XML 工具 可爱的 Python:DOM 的动态性近观 Python 的 xml.dom 模块 可爱的 Python:我的第一个基于 Web 的过滤 proxy 使用 Txt2Html 转换文本到 HTML 可爱的 Python:使用状态机 可爱的 Python:Python 中的文本处理 入门者提示 可爱的 Python:Curses 编程 入门提示 可爱的 Python :Python 的实现内幕 Interviews with the creators of Vyper and Stackless Python 可爱的 Python:动态重新装入 可爱的 Python:JPython 和 Python for .NET 内幕采访创始人 可爱的 Python:Python 中的函数编程 -- 让您喜爱的脚本语言发挥更大功效 可......

阅读全文(2320) | 评论:0

python资料(2010-10-22 11:12:00)

摘要:来源: http://mandant.blog.163.com/blog/static/350380212009715114657858/   中文的: 《征服Python:语言基础与典型应用》 第8章 Python扩展和嵌入 http://download.csdn.net/source/1543870 第9章 多线程编程 http://download.csdn.net/source/1543876 第10章 系统编程 http://download.csdn.net/source/1543878 Beginning Python From Novice To Professional中文版 http://download.csdn.net/source/1543442 Tkinter Programming Code By Examples http://download.csdn.net/source/1543434 简明 Python 教程  http://download.csdn.net/source/1540368 英文的: Numerical Methods In Engineering With Python http://download.csdn.net/source/1566171 Numeric Python (NumPy) Manual http://download.csdn.net/source/1549148 Beginning Python  http://download.csdn.net/source/1543437 Rapid GUI Programming with Python and Qt  http://download.csdn.net/source/1543432 Python Scripting for Computational Science  http://download.csdn.net/source/1543429 Python Developer's Handbook http://download.csdn.net/source/1543......

阅读全文(1881) | 评论:0

python资料大全(2010-10-22 11:11:00)

摘要:  http://www.verycd.com/topics/256482/   Python,是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。

这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ABC 语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。

ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在 Python 中避免这一错误(的确如此,Python 与其它的语言如C、C++和Java结合的非常好)。同时,他还想实现在 ABC 中闪现过但未曾实现的东西。

就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ABC 语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。
  本ISO文件包含以下内容:
(Python and PHP IDE) Maguma Studio for PHP (Editor, Complete).exe......

阅读全文(1910) | 评论:0

开发BHO插件(2010-10-21 17:16:00)

摘要: 开发BHO插件 正文
在Windows操作系统上,我们最常见的浏览器有两种:文件浏览器(exploer.exe,应用于文件系统)和Internet浏览器(iexplore.exe,应用于互联网资源)。由于这两个浏览器功能强大,而且又与Windows操作系统捆绑销售,最终也就成为了浏览器的标准。但有时候,为了给浏览器加入一些新的特性,我们往往会重新设计一个自己的浏览器。新的浏览器模仿标准浏览器的大部分功能,同时加入新特性。这种做法最直观,但实际上也是相对于微软的重复劳动,且工作量比较大。其实,使用BHO插件,一切都变得很简单。

BHO(Browser Help Objects),是实现了特定接口的COM组件。开发好的BHO插件在注册表特定的位置注册好后,每当微软的浏览器启动,BHO实例就会被创建。在浏览器工作的工程中,BHO会接收到很多事件,比如浏览器浏览新的地址、前进或后退、生成新的窗口、浏览器退出等等;BHO可以在这些事件的响应中实现与浏览器的交互。

下面,我们首先来介绍一下BHO的工作原理。上面我们已经提到,BHO是COM组件,而且一定实现了IObjectWithSite接口。这些组件除了在注册表中注册为COM Server外,还必须将它们的CLSID在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Explorer\Browser Helper Objects下注册为子键。微软在设计浏览器的时候,已经给这些组件预留了空间。每当浏览器启动时,浏览器会首先在上述注册表位置查看是否有注册的BHO CLSID;如果有则分别创建一个实例,并对BHO实例进行初始化,建立交互连接。(注:BHO实例只有在创建它的浏览器窗口销毁时才被释放。)下图演示了BHO的创建过程:


成功创建的BHO,不仅可以得到各种标准的浏览器操作事件,并做出响应;还可以定制浏览器的菜单、工具条等界面元素;更或者可以安装钩子函数,监视浏览器的一举一动。值得注意的是,使用BHO插件,Internet浏览器要求在4.0以上版本;如果是文件浏览器,操作系统要求是Windows 95/98/2000或Window......

阅读全文(3057) | 评论:0

Socket程序从windows移植到linux下需要注意的 [转](2010-10-21 17:15:00)

摘要: Socket程序从windows移植到linux下需要注意的 [转]    关于这个话题网上流传的是一个相同的版本,就是那个第一项是头文件的区别,但后面列出的头文件只有#include没有(估计是原版的在不断转载的过程中有人不小心忘了把尖括号转义,让浏览器当html标记解析没了)的那个。现在整理了一下,以后也会不断补充内容。 1)头文件
windows下winsock.h或winsock2.h
linux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了) 2)初始化
windows下需要用WSAStartup启动Ws2_32.lib,并且要用#pragma comment(lib,"Ws2_32")来告知编译器链接该lib。
linux下不需要 3)关闭socket
windows下closesocket(...)
linux下close(...) 4)类型
windows下SOCKET
linux下int(我喜欢用long,这样保证是4byte,因为-1我总喜欢写成0xFFFF) 5)获取错误码
windows下getlasterror()/WSAGetLastError()
linux下,未能成功执行的socket操作会返回-1;如果包含了errno.h,就会设置errno变量 6)设置非阻塞
windows下ioctlsocket()
linux下fcntl(),需要头文件fcntl.h 7)send函数最后一个参数
windows下一般设置为0
linux下最好设置为MSG_NOSIGNAL,如果不设置,在发送出错后有可能会导致程序退出 8)毫秒级时间获取
windows下GetTickCount()
linux下gettimeofday() 9)多线程
windows下包含process.h,使用_beginthread和_endthread
linu......

阅读全文(1940) | 评论:1

curl应用总结(二)(2010-10-21 17:14:00)

摘要: curl应用总结(二) Posted on 2010-05-24 14:25 S.l.e!ep.¢% 阅读(158) 评论(0)  编辑 收藏 引用 所属分类: CURL curl的应用方式,一是可以直接通过命令行工具,另一种是利用libcurl库做上层的开发。本篇主要总结一下命令行工具的http相关的应用,尤其是http下载方面的;下一篇再讲基于libcurl库的开发。
    
   
    curl的命令行工具功能非常强大,这些数据交互的功能基本上都是通过URL方式进行的,我们先来看看curl对多个URL的灵活操作,这些规则使我们的批处理需求应用起来非常方便。
   
    1、用{}表示多个URL
    如 http://site.{one,two,three}.com,只要在{}中写上不同的部分,就可以表示3个URL了。
   
    2、用[]表示多个URL
    如 ftp://ftp.numericals.com/file[1-100].txt,ftp://ftp.numericals.com/file[001-100].txt,ftp://ftp.letters.com/file[a-z].txt, []中表示按数字或字母的顺序排列。
    还能表示不连续的排列,如 http://www.numericals.com/file[1-100:10].txt,http://www.letters.com/file[a-z:2].txt,":" 后面的数字表示等差排列的阶跃数。
   
    3、结合起来使用
    如 http://any.o......

阅读全文(2412) | 评论:0

curl应用总结(一)(2010-10-21 17:14:00)

摘要: curl应用总结(一) Posted on 2010-05-24 14:24 S.l.e!ep.¢% 阅读(176) 评论(0)  编辑 收藏 引用 所属分类: CURL 最近开发中用到curl库,虽然都是很简单的应用,但对这个库还是产生了兴趣,想学习总结一下。curl库功能非常强大,这里主要针对http应用,尤其是http文件下载做一个总结。当然了,还是主要针对Windows系统来讲。     本文是第一篇,当然要简单介绍一下curl,然后说一下Windows系统下的编译安装,以及对curl工具的简单应用。   curl是一个基于命令行的应用工具,提供利用URL标准进行文件传输的功能。目前已经支持非常多的流行的互联网协议,如:FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE等。curl支持SSL认证,HTTP POST/PUT,FTP上传,HTTP上传、代理、cookies、用户+密码认证、文件续传、代理管道等一系列强大功能。curl是用C语言写的,但是绑定了很多开发语言。大体上可以把curl分成命令行工具和libcurl库两个部分,命令行工具可以直接输入指令完成相应功能,libcurl则是一个客户端URL传输库,是线程安全且兼容IPv6,可以非常方便地用来做相关开发。     更多关于curl的信息可以参考官网http://curl.haxx.se/。 curl的相关文档非常全,不得不赞一下。其实查阅原文文档是一个很好的习惯,而且还是一件很惬意的事情,对提高英文阅读能力帮助也很大。     从curl官方网站上可以直接下载到编译好的lib,dll和exe文件,但是自己由源码编译安装curl,也是一件有意思的事情。从网站上下载源码包,解压缩后会看到根文件目录下面有很多文件及文件夹。其中的文件是有关curl项目的介绍、版本变更情况、以及一些有关配置和编译的文件;文件夹中比较重要的有3个:docs、lib和src,docs中包括项目的所有相关文档,lib中为libcurl库的源码,src为curl命令行工具的源码。
......

阅读全文(5350) | 评论:4

总结一下DLL声明的一些问题(2010-10-21 17:13:00)

摘要: 总结一下DLL声明的一些问题 Posted on 2009-09-04 09:25 S.l.e!ep.¢% 阅读(99) 评论(0)  编辑 收藏 引用 所属分类: DLL 有关DLL的问题现在资料很多,但是很多人写DLL时经常出现调用程序无法找到相关的导出函数的问题,这里主要的原因是DLL在声明时出的问题。
在这里主要有两个问题,一个是调用约定的问题,一个是函数名修饰的问题,而这两个问题又是相互影响的。
一:声明为:extern "C" int __declspec(dllexport)add(int x, int y);
这种声明是强制用C语言方式进行修饰,且用C的默认约定,即__cdecl方式。这种方式编译产生的DLL中有一个导出函数:add,不加任何修饰。
二:声明为:extern "C" int __declspec(dllexport) __stdcall add(int x, int y);
这种声明是强制用C语言方式进行修饰,且用stdcall约定,这种方式编译产生的DLL中有一个导出函数:_add@8,即前面有“_”,后面加了参数长。
三:声明为:int __declspec(dllexport) __stdcall add(int x, int y);
这种声明不强制用C语言方式进行修饰,但是用stdcall约定,这种方式编译产生的DLL中有一个导出函数:?add@@YGHHH@Z。这个名字很怪,后面的不好理解。
四:声明为:int __declspec(dllexport) __cdecl add(int x, int y);
这种声明是不强制用C语言修饰,且用cdecl约定,这种方式编译产生的DLL中有一个导出函数:?add@@YAHHH@Z,注意看,和第三种方有一点不同。

实验一:显式调用方式调用DLL中的add函数。
#include <stdio.h>
#include <windows.h>
typedef  int(_stdcall *lpAdd......

阅读全文(1449) | 评论:0