- 浏览: 127252 次
- 性别:
- 来自: 北京
最新评论
-
cloverprince:
z707208280 写道写多表查询咋整? select 列 ...
[自己动手]用Java的反射实现DAO -
z707208280:
写多表查询咋整? select 列 这里用别名.字段 这咋整手 ...
[自己动手]用Java的反射实现DAO -
亮亮婷婷:
4楼正解,顶!
能在Eclipse 3.7中给m2e提供WTP支持的插件在哪里? -
cloverprince:
沙舟狼客 写道貌似2b青年的代码很有技术含量嗯,简单问题复杂化 ...
普通青年 文艺青年 2B青年 -
沙舟狼客:
貌似2b青年的代码很有技术含量
普通青年 文艺青年 2B青年
文章列表
Now I am going to create a classed type.
Q: What is a class?
A: I don't know for sure. In object-oriented programming, a class represents a "kind" of data. It specifies what data there is (the members/fields) in each object (instance) and what can be done (the methods) to the object.
Q: ...
- 2009-10-13 16:53
- 浏览 1751
- 评论(0)
GObject system handles "types".
Q: So what is a "type"?
A: Err.. A "type" is how you consider a piece of data.
See, there is no "type" in assembly language. The data, whether in registers or memory, are what they are treated as. You can always read/write d ...
- 2009-10-13 01:25
- 浏览 1829
- 评论(0)
This document introduces the GObject library. This cannot replace the official tutorial/reference. It is recommended to lookup the official reference every time you encountered new concepts.
--
After trying to learn GObject object system for more than ten times (and failed as many times as I have ...
问题贴:http://cloverprince.iteye.com/blog/481307
引用1. 现有一个主程序用C语言写成。现在要允许第三方开发人员编写扩展的模块,约定第三方开发的模块必须提供一系列已知名称的函数(如 foo(),bar(),baz())。如果要求第三方的模块必须与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载并使用,应如何实现?
回答:
除了用操作系统提供的接口外,还可以用Glib的简单封装。GLib简单封装了操作系统相关的动态库装载函数,位于GModule中。GModule相当于Library Handle,而g_module_op ...
- 2009-10-08 01:37
- 浏览 1262
- 评论(0)
问题贴:http://cloverprince.iteye.com/blog/481307
引用
2. 现有一个主程序用C++语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个继承自某个已知类(如class FooPlugin)的子类,名称不限。如果要求第三方的类必须与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用,应如何实现?
回答:
除了直接使用操作系统提供的接口以外,还可以使用Qt提供的插件系统。我们需要一个纯虚类,并用Q_DECLARE_INTERFACE宏声明该接口。插件模块中,具体类继承该接口,并用Q_EXPORT_ ...
- 2009-10-06 23:03
- 浏览 1315
- 评论(0)
问题原贴: http://cloverprince.iteye.com/admin/blogs/481307
引用5. 现有一个主程序用Python语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个继承自某个已知类(如class FooPlugin)的子类,名称不限。如果要求第三方的类必须与主程序的py脚本或pyc字节码分开发布,把py或pyc丢在某个文件夹内即可被动态装载使用,应如何实现?
回答:
Python的imp模块提供了加载模块的方法。一旦加载了模块,其中的函数、类,就可以直接用成员运算符“.”访问。
适用范围:
Python2.x
实现 ...
- 2009-10-04 20:35
- 浏览 1010
- 评论(0)
问题原贴: http://cloverprince.iteye.com/admin/blogs/481307
引用4. 现有一个主程序用C#语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个实现了某个已知接口(如interface IFooPlugin)的类,名称不限。如果要求第三方的类必须与主程序的二进制代码分开发布,把dll丢在某个文件夹内即可被动态装载使用,应如何实现?
回答:
每个插件作为一个程序集(Assembly),dll的形式。里面包含一个实现已知接口的类。使用Assembly.LoadFile()装载该插件,用Assembly.GetInte ...
- 2009-10-04 17:47
- 浏览 1159
- 评论(0)
问题原贴: http://cloverprince.iteye.com/admin/blogs/481307
引用3. 现有一个主程序用Java语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个实现了某个已知接口(如interface IFooPlugin)的类,名称不限。 ...
- 2009-10-03 21:58
- 浏览 1364
- 评论(0)
问题贴:http://cloverprince.iteye.com/blog/481307
引用
2. 现有一个主程序用C++语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个继承自某个已知类(如class FooPlugin)的子类,名称不限。如果要求第三方的类必须与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用,应如何实现?
回答:
和C一样,使用shared object和动态装载。但是不同的是,由于需求中以“类”为插件的单位,类相当于一种数据类型(和算法),而数据类型并不是so中可以储存的东西。所以,我们必须转而储存过程。 ...
- 2009-10-02 14:09
- 浏览 1341
- 评论(0)
问题贴:http://cloverprince.iteye.com/blog/481307
引用1. 现有一个主程序用C语言写成。现在要允许第三方开发人员编写扩展的模块,约定第三方开发的模块必须提供一系列已知名称的函数(如 foo(),bar(),baz())。如果要求第三方的模块必须与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载并使用,应如何实现?
回答:
操作系统提供了shared object的动态装载功能。定义在dlfcn.h中。调用dlopen()打开插件,dlsym()获取函数,dlclose()关闭插件。
适用于:
*nix。在Li ...
- 2009-10-02 14:05
- 浏览 1780
- 评论(0)
======== 第一组 ========
1. 现有一个主程序用C语言写成。现在要允许第三方开发人员编写扩展的模块,约定第三方开发的模块必须提供一系列已知名称的函数(如 foo(),bar(),baz())。如果要求第三方的模块必须与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载并使用,应如何实现?
2. 现有一个主程序用C++语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个继承自某个已知类(如class FooPlugin)的子类,名称不限。如果要求第三方的类必须与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动 ...
- 2009-10-02 13:58
- 浏览 1509
- 评论(0)
中国的居民身份证有18位。其中前17位是信息码,最后1位是校验码。每位信息码可以是0-9的数字,而校验码可以是0-9或X,其中X表示10。
身份证校验码算法:
设18位身份证号序列从左到右为:
引用a[0], a[1], a[2], a[3], ..., a[16], a[17]
其中a[i]表示第i位数字,i=0,1,2,...,17,如果最后一位(校验位)是X,则a[17]=10
每一位被赋予一个“权值”,其中,第i位的权值w[i]的计算方法是:
引用w[i] = 2**(17-i) % 11
其中,i=0,1,2,3,...,17,运算符按Python惯例:x**y表示x的y次方,x ...
- 2009-09-07 20:47
- 浏览 4542
- 评论(1)
意大利面条代码是一种很直接的实现方法。但是,毕竟日后维护会引发不便。
不包含加密和文件传输飞鸽程序可以分解成两部分:
1. GUI。呈现图形界面,相应用户输入。实际上就是把读取键盘的线程变成GUI而已,但是已经不包含了任何与网络相关的部分,如socket维护等。这里维护系统状态,如邻居表:就是通讯录,记录每个邻居的IP地址、用户名、主机名、昵称、群组、在线情况(以及可用的加密算法等)。
2. Communicator,通信器。负责维护socket,接收和解析数据报、并根据GUI发来的请求,组装相应的报文,发出相应的报文。本身唯一的状态就是socket本身。
这里GUI作为主对象,创建和控 ...
(不完整列表,不定期更新)
== 官方网站 ==
网站:http://www.ipmsg.org/
收录了Windows/Win16/Mac/X11/GTK等平台上的众多实现。
== iptux ==
网站:http://code.google.com/p/iptux/
平台:gtk
消息加密:无
文件传输:有
协议扩展:头像、文件共享、消息群发
用C++实现,但直接使用了GTK而不是gtkmm。实现了文件传输,没有实现加密。扩展了“头像”功能。
- 2009-07-13 19:43
- 浏览 1224
- 评论(0)
最朴素的实现就是过程化的方法。
简单起见,实现使用命令行界面。分成两个线程,一个用于接受键盘输入,另一个用于接受UDP Socket的输入。
警告:代码十分纠结,堪比意大利面条。初学者和OO程序员切勿模仿。
第一部分是初始化。
#!/usr/bin/env python
import threading
import socket
import constants # 存放飞鸽协议需要的常数,一般为IPMSG_*的形式
import pdu # 自动构造数据报报文的模块,略。
PORT = 2425 # 飞鸽使用2425端口
MAX_PACKE ...
- 2009-07-13 01:55
- 浏览 1255
- 评论(0)