By lzp729 on July 10, 2011
额。。。 好吧,我是个疯狂的软件新版跟随者和狂热的安装程序收集者。 -_-
今天Windows live 2011更新到新版15.4.3538.0513,当然更新,去官网下载,得到一个1M多点的wlsetup-web.exe程序,看大小就知道是要在线安装的,不爽,删之,把live.com网站翻了个边,没有找到记忆中的完整版下载的入口,无奈,小探索了下,发现了从官网找离线安装程序的办法,共享之。
从这里开始吧,打开http://explore.live.com/download-windows-live,可以选你要下载的语言,我选英文,你们自便。点English后会直接开始下载wlsetup-web.exe,当然这不是我要的,取消,复制下来English这个链接的地址是
http://g.live.com/1rewlive4-web/en/wlsetup-web.exe??WLI=1&WLXID=0d769581-fba3-4a13-8c0d-c3172ab2baf7&RID=00ef31a210c&TID=1310237640105&lid=
开始构造了,把后面那些记录下载量的东西都删掉得到
Continue reading “教你如何从官网找到Windows Live 2011软件包的离线完整版的下载路径”
Posted in General technic | Tagged 15.4.3538.0513, windows live 2011, wlsetup-all, 完整, 离线 |
By lzp729 on June 6, 2011
- 美国信息交换标准码(ASCII:American Standard Code for Information Interchange)起始于50年代后期,最后完成于1967年。有26个小写字母、26个大写字母、10个数字、32个符号、33个句柄和一个空格,总共128个字符码,共7位长。ASCII有许多优点。例如,26个字母代码是连续的;大写字母和小写字母可通过改变一位数据而相互转化;10个数字的代码可从数值本身方便地得到。

- 最初的IBM扩展字符集包括某些带重音的字符和一个小写希腊字母表(在数学符号中非常有用),还包括一些块型和线状图形字符。附加的字符也被添加到ASCII控制字符的编码位置,这是因为大多数控制字符都不是拿来显示用的。
- Windows字符集被称作「ANSI字符集」。ANSI草案和ISO标准最终成为ANSI/ISO 8859-1-1987,即「American National Standard for Information Processing-8-Bit Single-Byte Coded Graphic Character Sets-Part 1: Latin Alphabet No 1」,通常也简写为「Latin 1」。

空方框表示该位置未定义字符。这与ANSI/ISO 8859-1的最终定义一致。ANSI/ISO 8859-1仅显示了图形字符,而没有控制字符,因此没有定义DEL。此外,代码0xA0定义为一个非断开的空格(这意味着在编排格式时,该字符不用于断开一行),代码0xAD是一个软连字符(表示除非在行尾断开单词时使用,否则不显示)。此外,ANSI/ISO 8859-1将代码0xD7定义为乘号(*),0xF7为除号(/)。Windows中的某些字体也定义了从0×80到0x9F的某些字符,但这些不是ANSI/ISO 8859-1标准的一部分。
- MS-DOS 3.3(1987年4月发行)向IBM PC用户引进了代码页(code page)的概念,Windows也使用此概念。代码页定义了字符的映像代码。最初的IBM字符集被称作代码页437,或者「MS-DOS Latin US)。代码页850就是「MS-DOS Latin 1」,它用附加的带重音字母(但不是Latin 1 ISO/ANSI标准)代替了一些线形字符。其它代码页被其它语言定义。最低的128个代码总是相同的;较高的128个代码取决于定义代码页的语言。
- 双字节字符集(DBCS:double-byte character set)。DBCS从256代码开始,就像ASCII一样。与任何行为良好的代码页一样,最初的128个代码是ASCII。然而,较高的128个代码中的某些总是跟随着第二个字节。这两个字节一起(称作首字节和跟随字节)定义一个字符,通常是一个复杂的象形文字。双字符集问题并不是说字符由两个字节代表。问题在于一些字符(特别是ASCII字符)由1个字节表示。这会引起附加的程序设计问题。例如,字符串中的字符数不能由字符串的字节数决定。必须剖析字符串来决定其长度,而且必须检查每个字节以确定它是否为双字节字符的首字节。如果有一个指向DBCS字符串中间的指针,那么该字符串前一个字符的地址是什么呢?惯用的解决方案是从开始的指针分析该字符串!
- 与混乱的256个字符代码映像,以及含有一些1字节代码和一些2字节代码的双字节字符集不同,Unicode是统一的16位系统,这样就允许表示65,536个字符。这对表示所有字符及世界上使用象形文字的语言,包括一系列的数学、符号和货币单位符号的集合来说是充裕的。前128个Unicode字符(16位代码从0×0000到0x007F)就是ASCII字符,而接下来的128个Unicode字符(代码从0×0080到0x00FF)是ISO 8859-1对ASCII的扩展。Unicode中不同部分的字符都同样基于现有的标准。这是为了便于转换。希腊字母表使用从0×0370到0x03FF的代码,斯拉夫语使用从0×0400到0x04FF的代码,美国使用从0×0530到0x058F的代码,希伯来语使用从0×0590到0x05FF的代码。中国、日本和韩国的象形文字(总称为CJK)占用了从0×3000到0x9FFF的代码。
- C语言中, 定义一个双字节的字符 wchar_t c = ‘A’ 或者wchar_t c = L’A', 其中的wchar_t为typedef unsigned short wchar_t ,定义于wchar.h,定义宽字符串的指针 wchar_t *p = L”Hello”
- 窄字符的函数均有宽字符版本,比如strlen对应wcslen,printf对应wprintf, 在wchar.h和string.h中声明。
- 维护单一源代码,用VC饱含tchar.h头文件,新的数据类型TCHAR根据是否定义了_UNICODE来确定自身类型为char或者wchar_t,定义字符串时用宏__T或_T或者_TEXT或者__TEXT或者TEXT
- _UNICODE用于C, UNICODE用于VC
- 一个Windows程序包括表头文件WINDOWS.H。该文件包括许多其它表头文件,包括WINDEF.H,该文件中有许多在Windows中使用的基本型态定义,而且它本身也包括WINNT.H。WINNT.H处理基本的Unicode支持,WINNT.H的前面包含C的表头文件CTYPE.H,这是C的众多表头文件之一,包括wchar_t的定义。WINNT.H定义了新的数据型态,称作CHAR和WCHAR。
typedef char CHAR ;
typedef wchar_t WCHAR ; // wc
typedef CHAR * PCHAR, * LPCH, * PCH, * NPSTR, * LPSTR, * PSTR ;
typedef CONST CHAR * LPCCH, * PCCH, * LPCSTR, * PCSTR ;
typedef WCHAR * PWCHAR, * LPWCH, * PWCH, * NWPSTR, * LPWSTR, * PWSTR ;
typedef CONST WCHAR * LPCWCH, * PCWCH, * LPCWSTR, * PCWSTR ;
#ifdef UNICODE
typedef WCHAR TCHAR, * PTCHAR ;
typedef LPWSTR LPTCH, PTCH, PTSTR, LPTSTR ;
typedef LPCWSTR LPCTSTR ;
#else
typedef char TCHAR, * PTCHAR ;
typedef LPSTR LPTCH, PTCH, PTSTR, LPTSTR ;
typedef LPCSTR LPCTSTR ;
#endif
#define __TEXT(quote) L##quote
#define TEXT(quote) __TEXT(quote)
// 还有宏__T或_T或者_TEXT或者__TEXT或者TEXT
-
| ASCII | 宽字符 | 常规 |
| 参数的变数个数 | | | |
| 标准版 | sprintf
| swprintf
| _stprintf
|
最大长度版
| _snprintf
| _snwprintf
| _sntprintf
|
Windows版
| wsprintfA
| wsprintfW
| wsprintf
|
参数数组的指针
| | | |
标准版
| vsprintf
| vswprintf
| _vstprintf
|
最大长度版
| _vsnprintf
| _vsnwprintf
| _vsntprintf
|
Windows版
| wvsprintfA
| wvsprintfW
| wvsprintf
|
Posted in API, Windows开发, 代码人生 | Tagged unicide, windows api |
By lzp729 on May 18, 2011
- 70年代中期,Xerox Palo Alto Research Center(PARC)作的图形环境开拓性研究工作
1981年秋天,IBM推出PC
1983年1月,苹果计算机公司发表Lisa计算机
1983年11月,Windows 1.0,之后,又推出了几种改进版本,以支持国际商业市场,并提供新型视讯显示器和打印机的驱动程序
1984年1月,Lisa成为Macintosh上图形环境的一种标准
1987年11月,Windows 2.0,改进中最有效的是使用了可重迭式窗口,还增强了键盘和鼠标接口,特别是加入了菜单和对话框
1987年末,Microsoft和IBM合作开发的OS/2版本1.0
1988年10月,OS/2版本1.1中出现了管理图形使用者接口的PM(Presentation Manager),PM最初的设计构想是成为Windows的一种保护模式版本
至此,Windows还只要求Intel 8086或者8088等级的微处理器,以「实际模式」执行,只能存取地址在1MB以下的内存
Windows/386(在Windows 2.0之后不久发行的)使用Intel 386微处理器的「虚拟8086」模式,实现将直接存取硬件的多个MS-DOS程序窗口化和多任务化,Windows版本2.1被更名为Windows/286
1990年5月22日,Windows 3.0,改变就是对Intel的286、386和486微处理器保护模式的支持,能使Windows和Windows应用程序能存取高达16MB的内存,Windows用于执行程序和维护文件的「外壳」程序得到了全面的改进
1990年9月,IBM接管了OS/2
1992年4月,Windows 3.1,重要特性是TrueType字体技术(给Windows带来可缩放的轮廓字体)、多媒体(声音和音乐)、对象连结和嵌入(OLE:Object Linking and Embedding)和通用对话框,Windows 3.1只能在保护模式下运作,并且要求至少配置了1MB内存的286或386处理器
1993年7月,Windows NT,支持Intel 386、486和Pentium微处理器32位保护模式,Windows NT提供32位平坦寻址,并使用32位的指令集,可以移植到非Intel处理器上,并在几种使用RISC芯片的工作站上执行
1995年8月,Windows 95,缺少Windows NT中的某些功能,诸如高安全性和对RISC机器的可移植性等
1998年6月,Windows 98,具有许多加强功能,包括执行效能的提高、更好的硬件支持以及与因特网和全球信息网(WWW)更紧密的结合
- Windows 98和Windows NT都是支持32位优先权式多任务(preemptive multitasking)及多线程的图形操作系统,Windows的早期版本使用一种「非优先权式(non-preemptive)」的多任务系统,意味着Windows不使用系统定时器将处理时间分配给系统中运行的多个应用程序,程序必须自愿放弃控制以便其它程序运行
- Windows 1.0中,PC硬件结构的640KB内存限制,在不要求任何额外内存的情况下被有效地扩展了。但Microsoft并未就此停步:Windows 2.0允许Windows应用程序存取扩充内存(EMS);Windows 3.0在保护模式下,允许Windows应用程序存取高达16MB的扩展内存。Windows NT和Windows 98通过成熟的32位操作系统及平坦寻址空间,摆脱了这些旧的限制
- Windows运作机制的核心是一个称作「动态链接」的概念,早期,Windows的主要部分仅通过三个动态链接库实作,称作Kernel、User和GDI. Kernel(日前由16位的KRNL386.EXE和32位的KERNEL32.DLL实现)处理所有在传统上由操作系统核心处理的事务-内存管理、文件I/O和多任务管理. User(由16位的USER.EXE和32位的USER32.DLL实作)指使用者接口,实作所有窗口运作机制. GDI(由16位的GDI.EXE和32位的GDI32.DLL实作)是一个图形设备接口,允许程序在屏幕和打印机上显示文字和图形
- 在Windows NT中,Win16函数呼叫通过一个转换层被转化为Win32函数呼叫,然后被操作系统处理。在Windows 95和Windows 98中,该操作正相反:Win32函数呼叫通过转换层转换为Win16函数呼叫,再由操作系统处理
- Sample
#include <windows.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0);
return 0 ;
}
WINDOWS.H包含的最重要的和最基本的是:WINDEF.H 基本型态定义。WINNT.H 支持Unicode的型态定义。WINBASE.H Kernel函数。WINUSER.H 使用者接口函数。WINGDI.H 图形设备接口函数。
LPSTR的LP前缀代表「长指针」,这是16位Windows下的产物,改为PSTR。
前缀i表示int、sz表示「以零结束的字符串」。
#define WINAPI __stdcall,该语句指定了一个呼叫约定,包括如何生产机械码以在堆栈中放置函数呼叫的参数。许多Windows函数呼叫声明为WINAPI。
第一个参数被称作「执行实体句柄」。在Windows的早期版本中,当同时运行同一程序多次时,您便创建了该程序的「多个执行实体(multiple instances)」。同一应用程序的所有执行实体共享程序和只读的内存(通常是例如菜单和对话框模板的资源)。程序通过检查hPrevInstance参数就能够确定自身的其它执行实体是否正在运行。然后它可以略过一些繁杂的工作并从前面的执行实体将某些数据移到自己的数据区域。
在32位Windows版本中,该概念已被抛弃。传给WinMain的第二个参数总是NULL(定义为0)。
WinMain的第三个参数是用于执行程序的命令列。
WinMain的第四个参数指出程序最初显示的方式,可以是正常的或者是最大化地充满整个画面,或者是最小化显示在工作列中。
Posted in API, Windows开发, 代码人生 | Tagged windows api, 发展史 |
By lzp729 on March 13, 2011
近日发布了win7 sp1, 于是借机重装系统, 也升级了一些常用软件, 如windows live messenger 2011
但新装的windows live messenger 2011在新安装的系统上每次登录后都会假死, 我相信我的情况不是个案, 尝试了在网上找到了多种解决方案, 改注册表啦, 设置IE带啦, 改host文件啦, 毫无疑问的全部无效.
我自己做了一些尝试, 最终找到了一个解决方案, 在这里share给大家.
我的系统是win7 sp1 64bit
先安装老版的messenger 2009(v14.0.8117.416), 英文完整版下载地址点这里
然后用这个老版的登录一次.
再安装新版的messenger 2011(v15.4.3508.1109), 英文完整版下载地址点这里, 安装时会提示将更新已安装的老版messenger
更新后会提示要求重启, 重启之前最好把DX更新到最新
重启后就可以正常登录了.
Posted in General technic | Tagged messenger 2011, 假死, 停止响应 |
By lzp729 on December 24, 2010
- Python的异常语句形式
try: #进入异常管理的范围
<statement>
except <excp1>: #捕获异常1
<statement>
except <excp2>: #捕获异常2
<statement>
except: #捕获所有异常
<statement>
else: #如果没有发生异常
<statement>
finally: #不论是否发生异常都会执行, 如果发生了异常, 但没有捕获, 那么在finally语句执行完后, 会继续向上层抛出异常
<statement>
- Python可抛出的异常包括字符串和异常类对象, 对应的捕获类型是字符串值和异常类名
Posted in Python知识整理 | Tagged Python, 异常, 知识整理 |