上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 71 下一页
摘要: Programming windows 5th Edition Chapter 3 窗口和消息 1. 本章讲述了一个最简单的带窗口的windows程序HelloWin。 2. 窗口类别。在创建窗口(调用CreateWindow)之前,需要先注册窗口类别(RegisterClass)。所谓窗口类别表示的是窗口大体应该遵循 的共性,比如按钮窗口,他们的类别是一样的,比如光标,背景,最关键的是消息处理函数,这些东西都应该是一样的,至于每个按钮窗口不同的地方,比如大小, 位置等,放在CreateWindow中由我们来定义。所以窗口类别就是抽象了窗口的一些共性的东西,多个窗口在CreateWindow的 阅读全文
posted @ 2011-04-10 14:27 super119 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 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例子,实际上,这样的例子对于一 阅读全文
posted @ 2011-04-10 14:26 super119 阅读(991) 评论(0) 推荐(0) 编辑
摘要: 该程序分成Client和Server两部分,在一个solution中,两个Project client会给server分别发送一个ASCII的字符串,一个含有中文字符的Unicode字符串,最后发一个让server终结的字符串 在该例子中应用了winsock 1的函数,此外在Unicode处理上,得益于看了Programming windows的Unicode一章。特别是Unicode的处理上,通过这个例子,对windows中对Unicode的处理有了实战认识。 /Files/super119/UDPTest.rar 阅读全文
posted @ 2011-04-10 14:21 super119 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2011-04-10 14:14 super119 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 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这样的写法。这表 阅读全文
posted @ 2011-04-10 14:13 super119 阅读(742) 评论(0) 推荐(0) 编辑
摘要: 之前在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 阅读全文
posted @ 2011-04-10 14:12 super119 阅读(8284) 评论(1) 推荐(0) 编辑
摘要: 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(呼叫约定)其实是我们代码中对编译器行 阅读全文
posted @ 2011-04-10 14:10 super119 阅读(2278) 评论(0) 推荐(1) 编辑
摘要: Ubuntu 10.10安装了就OK,但是10.04不行,只找到这个解决办法:sudo modprobe -r psmouse接上鼠标之后,执行上面的命令,disable touchpad 阅读全文
posted @ 2011-04-10 13:54 super119 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 1. 用gtk_widget_get_request_size/gtk_widget_size_request取出来的都是当初request的size,不是widget当前的size 2. 使用gdk_drawable_get_size函数可以取出当前widget的size。注意,gdk_window_get_size函数有一样的效果,不过这个函数已经deprecated了。 还有一点,这个widget必须有window,像label, progressbar这些widget,他们是没有GdkWindow的(在Foundations of GTK+书中有描述,所以,像这样的widget如果要捕 阅读全文
posted @ 2011-04-05 10:25 super119 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 我简单搜了一下,好像没有现成的这样的widget。自己写一个这样的widget太费劲,于是构思了一下,简单的这样实现: GtkProgressBar没有GdkWindow,所以不能响应鼠标事件。于是我在progressbar下放了一个eventbox,响应 鼠标单机事件。在鼠标响应callback函数中,取出鼠标单击的position(X和Y坐标),再加上eventbox本身的size,就可以知道单 击的相对位置了。 阅读全文
posted @ 2011-04-05 10:24 super119 阅读(169) 评论(0) 推荐(0) 编辑
上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 71 下一页