摘要:
Programming windows 5th Edition Chapter 3 窗口和消息 1. 本章讲述了一个最简单的带窗口的windows程序HelloWin。 2. 窗口类别。在创建窗口(调用CreateWindow)之前,需要先注册窗口类别(RegisterClass)。所谓窗口类别表示的是窗口大体应该遵循 的共性,比如按钮窗口,他们的类别是一样的,比如光标,背景,最关键的是消息处理函数,这些东西都应该是一样的,至于每个按钮窗口不同的地方,比如大小, 位置等,放在CreateWindow中由我们来定义。所以窗口类别就是抽象了窗口的一些共性的东西,多个窗口在CreateWindow的 阅读全文
摘要:
Network Programming for Microsoft Windows, 2nd Edition Chapter 1 Winsock介绍 1. Winsock是微软做的网络通讯库,以前winsock是1.1版本,现在winsock有了winsock 2.2版本,winsock2版本变动比较大,做了很多工作。Winsock的接口设计在很大程度上参考了UNIX平台上的BSD的socket实现,在 Winsock 2里面接口做了一些变动,目的是做到winsock真正和协议无关,是一个通用的开发平台。 2. 本章介绍了TCP和UPD的两个最简单的winsock例子,实际上,这样的例子对于一 阅读全文
摘要:
该程序分成Client和Server两部分,在一个solution中,两个Project client会给server分别发送一个ASCII的字符串,一个含有中文字符的Unicode字符串,最后发一个让server终结的字符串 在该例子中应用了winsock 1的函数,此外在Unicode处理上,得益于看了Programming windows的Unicode一章。特别是Unicode的处理上,通过这个例子,对windows中对Unicode的处理有了实战认识。 /Files/super119/UDPTest.rar 阅读全文
摘要:
Windows网络编程 2nd Edition 第二章 Winsock的设计 Notes 1. System Architecture. 首先看附件1中的架构图。在ws2_32.dll下,分成了很多层,各自管各自的事情。在Winsock中,所谓的Provider指的是针对不同的协议 实现的包装,比如TCP有TCP的Provider,根据我们的winsock代码在创建socket的时候指定需要的协议来选择不同的Provider 为我们的程序提供服务。在图中可以看到,Provider又分成base和layered两种。我的理解是base provider就是最基本的针对协议的实现,如上面所说;la 阅读全文
摘要:
1. 本章主要讲述IP方面的东西,解释了IPv4, IPv6。在后面的两个章节中,讲述了地址和名字的解析(Address and Name Resolution),以及如何书写一个IPv4, IPv6自适应的程序。 2. 简单摘录一下IPv4一节的内容: (1) 可以拿来做私有地址的IP有: 10.0.0.0?10.255.255.255 (10.0.0.0/8) 172.16.0.0?172.31.255.255 (172.16.0.0/12) 192.168.0.0?192.168.255.255 (192.168.0.0/16) 在书写IP段的时候,经常有/16, /24这样的写法。这表 阅读全文
摘要:
之前在linux下做过一个测试:写一个so,该so中有一个全局变量。so中的代码在运行时会修改该全局变量的值。然后,有多个程序都需要该so,而且这些应用程序都启动了。此时,很显然so只被加载了一份,那么,当这么多程序在运行调用该so时,该so中的全局变量的值会被覆盖来覆盖去么?答案是不会。这是测试的答案。现在知道原理了,尽管这是windows via C/C++中解释的windows的做法,但是我想linux也是这么类似处理的。windows 使用memory map来加载exe和dll。当一个exe/dll有多个instance要启动时,实际在windows paging file(包括RA 阅读全文
摘要:
1. 本文讲述WIN32下的calling convention,也就是__cdecl, __stdcall, __fastcall这些编译器指示代码。本文所有的内容都是针对WIN32的,准确点说,是针对windows的C/C++编译器的。UNIX /Linux下基于GNU编译器的,就没有这个东西(可能是就一种calling convention吧),不过GNU编译器也有一个有趣的编译指令-__attribute__,有兴趣的可以参考Linux版中的“Using GNU C __attribute__”一文。 2. 所谓calling convention(呼叫约定)其实是我们代码中对编译器行 阅读全文
摘要:
Ubuntu 10.10安装了就OK,但是10.04不行,只找到这个解决办法:sudo modprobe -r psmouse接上鼠标之后,执行上面的命令,disable touchpad 阅读全文