- 博客(30)
- 收藏
- 关注
原创 Windows Via C/C++ 读书笔记 13 动态链接库基础DLL Basics
Windows Via C/C++ 读书笔记 13 动态链接库基础DLL Basics1. Overview本章讲DLL概念(比一些教程仔细得多),实现方式,并给一个简单的DLL例子说明代码如何构建。废话少说,先上图。这张图说明了一个DLL由编写到链接、被调用的全部过程。看这篇文章前,你至少要知道什么是compile,什么是link,都干了些啥。左边的树是DLL文件
2009-06-21 15:51:00 860
原创 Windows Via C/C++ 读书笔记 12 Heap(堆)
Windows Via C/C++ 读书笔记 12 Heap(堆)1. Overview堆是除了Reserve-Commit和Memory-Mapped Files外的第三种也是最后一种内存管理方式。它适合用来保存数量很多的小块,优点是不需要做复杂的reserve-commit操作,缺点是不能commit-decommit最大化利用内存。堆实际上是在进程地址空间中reserve
2009-06-18 00:19:00 1086
原创 Windows Via C/C++ 读书笔记 11
Windows Via C/C++ 读书笔记 11 Memory-Mapped Files(内存映射文件)1. OverviewMemroy-Mapped Files(MMFs)是提供一种像访问内存一样访问文件的方案。Memroy-Mapped Files(MMFs)的作用有3个:1. 系统用MMFs读取exe和dll文件。还记得前面讲的物理内存和磁盘内存(page fil
2009-06-15 21:10:00 1154
原创 Windows Via C/C++ 读书笔记 10
Windows Via C/C++ 读书笔记 10 Windows 内存架构(2)1. 线程的栈当一个线程被创建的时候,操作系统会给它的栈reserve一块区域,通常大小为1M,然后立刻在栈顶commit 2个pages。(见图1)第一个Page是供线程立刻可以使用,第二个page是守护页面(guard page),当线程用完第一个页面的时候,需要更多栈内存会访问到守护页面,操
2009-06-14 09:51:00 687
原创 Windows Via C/C++ 读书笔记 9 Windows Memory Architecture
这章讲进程内存与操作系统物理内存之间的关系,操作系统如何管理。关键字:虚拟地址空间,reserve commit free三步。Windows Via C/C++ 读书笔记 9 Windows Memory Architecture 1. 进程的虚拟地址空间每个进程都有自己的虚地址空间,32bit系统的地址空间是4GB(0x00000000~0xFFFFFFFF),64bit系
2009-06-13 17:55:00 1310
原创 Windows Via C/C++ 读书笔记 8 Fiber(纤程)
Windows Via C/C++ 读书笔记 8 Fiber(纤程)1. Overview本章讲UNIX多线程和Windows线程区别,和Fibers的相似。Unix部分是我查资料加个人理解写的,可能有些错误,请达人指正。UNIX操作系统的多线程实现。这章比较短,查了下UNIX线程的实现。以前知道UNIX只有进程的概念,后来工作又接触了pthreads多线程编程,一直没搞明白。
2009-06-10 09:58:00 3037 1
原创 Windows Via C/C++ 读书笔记 7 异步IO, 完成端口模式
Windows Via C/C++ 读书笔记 7 1. 异步IO异步IO简单来讲就是把读写IO操作调用后交给操作系统处理,调用线程可以继续干其它的事情。当操作系统完成IO操作后,通知调用线程。调用线程得到通知后,再处理。后面会讲如何设置IO模式为异步模式,如何获取通知。 操作顺序未知文件的异步IO操作会提交给操作系统的队列,驱动程序不会严格按提交顺序执行。比如有的操作离
2009-06-08 21:19:00 2495
原创 Windows Via C/C++ 读书笔记 6
Windows Via C/C++ 读书笔记 6 1. 用内核对象做线程同步1.1. OverviewWhy use kernel object?内核对象做同步操作要进入系统模式,比用户模式更消耗CPU,为什么还要用呢?内核对象同步操作功能更多,比如跨进程的同步,非阻塞同步等待。内核对象同步的关键内核对象有两个状态:"signaled", "nonsignale
2009-06-05 16:55:00 963
原创 Windows Via C/C++ 读书笔记 5 用户模式的线程同步
Windows Via C/C++ 读书笔记 5 1. 用户模式的线程同步1.1. 原子操作函数Windows提供几个原子操作函数://给变量做加减操作InterlockedExchangeAddInterlockedExchangeAdd64//修改变量值,返回变量原先值InterlockedExchangeInterlockedExchange64
2009-06-02 20:34:00 1453
原创 Windows Via C/C++ 读书笔记 4 线程调度 优先级
Windows Via C/C++ 读书笔记 4 1. Thread Scheduling, Priorities, and Affinities1.1. 暂停和恢复线程线程内核对象有一个Suspending计数,每对线程做Suspending操作,该计数加一。如果该计数不为0,线程不会被执行。因此要Resume一个线程,必须调用相同次数的Resume操作。1.2.
2009-05-27 08:44:00 3591
原创 Windows Via C/C++ 读书笔记 3
Windows Via C/C++ 读书笔记 3 1. JobJOB,翻译成工作或者任务。JOB是管理多个进程的集合体。如果你需要一次关闭多个进程,并且要在所有进程退出后得到通知,那么可以使用JOB这种对象。1.1. Job的使用流程1. 创建JOB或查找一个已有的JOB2. 把进程加入到JOB中3. 关闭JOB4. 等待JOB结束(JOB结束后会处于Signale
2009-05-25 20:37:00 1061
原创 Windows Via C/C++ 读书笔记 2
Windows Via C/C++ 读书笔记 21. 进程概念进程是一个运行程序的实例。包含2个东东:一个让操作系统管理进程的内核对象。一个地址空间(包含执行代码和数据),也包含动态内存分配的空间。 一个进程必须靠线程运行,它至少含有一个线程,即主线程。主线程再来创建更多线程。 2. 进程启动Windows有一个启动函数 "XXmianCRTStartu
2009-05-21 20:04:00 724
原创 windows via C/C++ Read Notes (1) ——Kernel Object (1)
Windows内核对象由内核管理,对象句柄依赖于进程。进程调用函数获取内核对象句柄,并对其操作。进程内内核句柄表书中假设了一种Windows的进程内核句柄表的实现:创建进程的时候,表会初始化为空。如果创建了一个内核对象,操作系统在该表内寻找一个没有使用过的槽(内存块,类似数组的一个单元),填入地址信息和句柄属性信息。如果释放一个内核对象,操作系统会对该内核对象引用计数减一,如
2009-05-17 08:07:00 830
原创 动态web图形的8种实现方式(转)
原文地址:http://softwareas.com/ajaxjavascript-8-ways-to-create-graphics-on-the-flyTuesday, October 3rd, 2006Dynamic Graphics in the BrowserCategory: UI, Canvas, ProgrammingDynamic graphics in
2008-05-28 17:21:00 1611
原创 贴几篇python与c++应用的文章
C++ 应用程序中 嵌入的python脚本与C++程序的互相调用(访问 通信)http://xjwenjunwu.spaces.live.com/blog/cns!EE28B0FF280F4067!226.entryHP-UX c++ 扩展 python (cpp extend python)http://xjwenjunwu.spaces.live.com/blog/cns!EE28
2007-12-28 10:36:00 914
原创 C++ 应用程序中 嵌入的python脚本与C++程序的互相调用(访问 通信)
本文提供一种不通过编译c++程序为动态库的方式,通过这种方式使python脚本能够访问c++编写的模块,同时c++模块能够直接访问c++宿主程序的变量。手头项目有个应用,需要在c++编写的程序中嵌入python脚本,用python脚本做一些计算,并把值传回给c++宿主程序。python脚本计算必须由c++提供计算的值,python访问宿主程序不是很方便,网上提供的方式都是用python写soc
2007-12-28 10:32:00 3295
原创 Python学习笔记 Module
任何py文件都可以做module。扩展C的时候,动态库也可以作为module导入。module里面可以定义函数 类 变量。(其实没有区别,对python来说,所有的东西都是对象)如果定义一个函数,在函数定义第一行出现的字符串文本会当作函数的docstring变量,其实就是该函数的注释,在python命令交互环境下可以调用function.__doc__(2个下划线)来显示该变量。导入的语法为 im
2007-12-19 09:31:00 1231
原创 Oracle 创建 schema
schema的中文翻译为 方案开始不是很明白,最近才搞清楚。schema就是一些数据库对象的集合 ,如 表 索引 sequence等(查看文档或者oracle10g EM)。一个用户一般对应一个schema(什么情况不对应一个schema还不知道)。这么设计是方便用户和数据库对象的管理。因此,创建schema必须通过创建用户进行。创建了一个用户以后,你就会发现出现了一个和用户名相同名字的schem
2007-10-31 09:32:00 4249 1
原创 博客搬家了
毕业了,换了工作环境,博客也跟着搬家了http://xjwenjunwu.spaces.live.com开始用msn,所以就直接用live space了,嘻嘻。新的工作方向是c++ 实时数据库 实时通信。现在还是处于入门阶段,所以文章也是以入门配置环境为主,欢迎大家来踩踩,多给点意见,特别是新的技术和发展方向。
2007-05-23 10:27:00 791
原创 ice在vc6环境下配置方法
ice在vc6环境下配置方法1. 文档信息作者:wwj文档创建时间:2007-4-2联系方式:wenjunwu430@gmail.com2. 阅读对象使用VC6编写ICE程序的初学者。3. 前言本文主要介绍使用VC6.0编写ICE程序的配置方法。经过2天的阅读与学习,终于成功编译了ICE的demo:printer。现将配置方
2007-04-02 18:23:00 2350
原创 c++ library and resource List (zz)
一些类库和资源(zz)Friday, 14. April 2006, 07:43:33C++ 1,前言 无数次听到“我要开始学习C++!”的呐喊,无数次听到“C++太复杂了,我真的学不会”的无奈。Stan Lippman先生曾在《C++ Primer》一书中指出“C++是最为难学的高级程序设计语言之一”,人们常将“之一”去掉以表达自己对C++
2006-12-06 22:21:00 2182
原创 MQ java 编程sample codes by ibm
u can download these codes at http://www-304.ibm.com/jct09002c/isv/tech/sampmq.html WebSphere MQ Java/JMS sample code
2006-02-22 13:45:00 6387
原创 MQ java 基础编程(一)
MQ java 基础编程(一)编写人:邬文俊编写时间:2006-2-16联系邮件:wenjunwu430@gmail.com前言通过2个多星期对MQ学习,在partner 丁 & partner 武 的帮助下完成了该文档。该文档提供一个简单的例子,通过对该例子的讲解,你将知道:1. 用java写客户端从MQ Server收发消息。2. MQ
2006-02-16 16:42:00 6756 8
原创 比较IBM MQSeries和BEA WebLogic JMS Server(转载)
比较IBM MQSeries和BEA WebLogic JMS Server(转载)关键词: MQSeries WebLogic JMS 比较IBM MQSeries和BEA WebLogic JMS Server原文:http://www.lrsolution.com/docs/MQvsWLJMS.h
2006-01-09 09:02:00 1962
原创 MyEclipse+Weblogic开发EJB(一)
MyEclipse+Weblogic开发EJB 编写人:邬文俊编写时间:2005-11-14联系邮件:wenjunwu430@gmail.com前言学习ejb也有段日子了,一直没有找到好的资料指导如何在myeclipse下面开发ejb,令我十分苦恼。经过查阅资料和阅读myeclipse自带帮助,总结出该文档,希望该文档能够让大家迅速上手使用MyEclipse开发EJB组件,做为我们组的培训资料。如
2006-01-09 09:00:00 7763 4
原创 delphi的属性property和消息处理特点事件属性。
Delphi 中的属性property(适合初学delphi)Propery In Delphi 前言:适合delphi初学者,有面向对象知识和java或者vc编程经验人士阅读。一普通属性我们在delphi的类中常常能看到这样的代码:propert property 属性名 类型名 read 字符串1 write 字符串2这里属性的名字可能不同。都是这样的格式:pro
2004-12-05 09:14:00 2276
原创 delphi 缓冲画图(内存画图)解决画图闪烁问题
很多朋友在做绘图程序的时候,往往出现屏幕不停刷新产生闪烁的问题,这里就告诉大家一个解决办法,缓冲绘图。如果有人是用取反画图解决这个问题,那么在画直线的时候容易出现斑点,效果不是很好。如果是图片很大,那么缓冲画图是解决的好办法。在网上搜索一下内存绘图,或者缓冲绘图,会有很多技术文章,不过都是以vc或者java为主,很少有pascal的代码例子。不过原理都是一样的,大家可以参考他们的文章。我会在最
2004-12-03 11:26:00 2505
原创 如何在delphi 中画带箭头的直线(改自网上一位论坛版主的vb代码)
procedure TLineItem.Draw(aCanvas: TCanvas);var Xa, Ya, Xb, Yb: real; D: real; X1, Y1, X0, Y0: Integer;begin aCanvas.Pen.Style := PsSolid; aCanvas.Pen.Color := clWhite;//画直线 aCa
2004-12-03 09:15:00 2661
原创 delphi透明组件(控件)开发
我的blog开通了:)。今天就谈谈我最近写透明组件(透明控件)的dd吧。网友提供的方法://///////////////////////////////////////////透明的控件, 一般继承自TGraphicControl的(就是那些没有handle属性, 不能有focus的控件, 如image)都有Transparent属性. 对TWinControl类的控件, 要实现透明只要完成以下
2004-10-28 21:03:00 2928 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人