
IT
kisserLeon
帅哥
展开
-
unicode学习小结
学习 unicode 也有一段时间了,虽然说没有学得很好,但是却是学到了许多东西啊,所以稍微小结一下,免得忘了,呵呵。很早就接触过 unicode 这个词了。不过以前太天真了,以为 unicode 是一件非常简单的事情,很容易就解决了。只要用 TCHAR 代替 CHAR ,在所有的字符串前面加上 TEXT ,然后在 vc 里面 Preprocessor definitions 加上 _UNICOD原创 2007-03-19 12:41:00 · 875 阅读 · 0 评论 -
合作型多任务和抢先式多任务
合作型多任务(cooperative multitasking)允许执行多个任务,但分享CPU是程序(而非操作系统)的责任。如果有一个程序决定咬住CPU不放,其它程序就停摆了。抢先式多任务(preemptive multitasking)操作系统能够强迫应用程序把CPU分享给其他人,程序员不需要什么额外的努力。虽然这个减少了程序员的工作,也不会因为某个程序拒绝分享CPU而造成其他程序hang住原创 2007-03-26 20:59:00 · 2281 阅读 · 0 评论 -
多线程学习中碰到的一个很有意思的问题
#include #include const int numThreads = 3; DWORD WINAPI helloFunc(LPVOID pArg) { int num = (int) pArg; printf("Hello Thread %d/n", num); return 0; }原创 2007-03-27 20:36:00 · 1436 阅读 · 0 评论 -
Programming in Lua
官方网站: http://www.lua.org,可以得到手册的内容。Lua用户社区: http://lua-users.org,提供了一些第三方包和文档。有很多好用的工具,http://lua-users.org/wiki/LuaAddons,包括Development environments、Code wrappers、Tools、Documentation等。资源非常丰富。有兴趣的朋友原创 2007-03-26 18:28:00 · 955 阅读 · 0 评论 -
核心对象Kernel Objects
核心对象其实和所谓的GDI对象,如画笔、画刷或DC是差不多的,只不过它由KERNEL32.DLL管理,而非GDI32.DLL管理。两种对象之间有许多相似。两者之间一个最大的不同是,GDI对象有单一拥有者,不是进程就是线程;而核心对象可以有一个以上的拥有者,甚至可以跨进程。为了保持对每一位主人(拥有者)的追踪,核心对象保持了一个引用计数(reference count),以记录有多少handl原创 2007-03-27 21:51:00 · 929 阅读 · 0 评论 -
N多的外国游戏公司
1. 3D Realms 2. 3M Corporation3. 7th Level4. Acclaim of the Americas5. Accolade6. Activision7. Adrenaline Entertainment8. Alf Engineering9. Alice原创 2007-03-29 00:03:00 · 1403 阅读 · 0 评论 -
google adsense
google真是无处不在阿!最近学会了怎么用。试用一下。想想也应该是没人会点击的,反正偶是不会主动去click的,除非是passive,一不小心点了个空白地方,结果是个广告,真是厉害啊,呵呵。如果对大家有用的信息,欢迎点击,娃哈哈。不过,说句实话,真得很污染版面阿,呵呵。 google_ad_client = "pub-6457474891690507";google_ad_widt原创 2007-03-29 15:11:00 · 678 阅读 · 0 评论 -
核心对象激发状态的意义
“激发”signaled对于不同的核心对象有不同的意义Thread线程,当线程结束时,线程对象即被激发。当线程还在进行时,则对象处于未激发状态。Process进程,当进程结束时,进程对象即被激发。当进程还在进行时,则对象处于未激发状态。Change Notification,当一个特定的磁盘子目录中发生一件特别的变化时,此对象即被激发。此对象系由FindFirstChang原创 2007-03-29 15:50:00 · 910 阅读 · 0 评论 -
Win32 Thread API学习之Critical Sections
Critical Sections并不是核心对象。因此没有handle这样的东西。它和核心对象不同,它存在于进程的内存空间中。你不需要使用想“Create”这样的API函数获得一个critical section handle。你应该做的是将一个类型为CRITICAL_SECTION的局部变量初始化,方法是调用InitializeCriticalSection():The Initialize原创 2007-03-30 15:04:00 · 1689 阅读 · 0 评论 -
Word2007的一个bug
如果您有兴趣看了偶的上一片文章《Win32 Thread API学习之Critical Sections 》的话,您会发现,里面居然有乱码!而本人又是声称精通Unicode的,是不是太土了阿?不过偶是故意留在那里的,免得忘了。恩后来我又试了一次,先把vc中的代码(包括中文注释),其实就是那片文章中的那些代码了。先拷贝到notepad中,OK!Notepad能够正确识别那些中文!看来不是vc的问题了原创 2007-03-30 15:18:00 · 885 阅读 · 0 评论 -
进程和线程
非常经典的面试题,经常看到,了解一些,但是要详细把他们以及他们之间的关系讲清楚,我还嫩了点。Sigh。这次就好好地把他们总结一下,好好的学习一下。恩。这里讲的进程和线程是指windows下的,Unix下的定义有些不同。进程和线程都是操作系统程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。一个程序至少有一个进程,一个进程至少有一个线程。线程是进程内的一个执行单元,也是原创 2007-03-24 21:50:00 · 690 阅读 · 0 评论 -
Intel Thread Checker学习
网址http://www.intel.com/cd/software/products/asmo-na/eng/threading/219785.htm可在上面下载30天试用版。用Intel Thread Checker来检查(多线程计算PI碰到的问题),极其简单!Thread Checker运行界面同VTune差不多,如果有VTune经验的话,非常容易上手的。1、运行Thr原创 2007-03-24 15:59:00 · 2224 阅读 · 0 评论 -
BOOTSTRAP caused an access violation in IMSCUI.DLL at 0x3c45039c
安装visual studio6.0 Enterprise (英文版)碰到的一个问题BOOTSTRAP caused an access violation in IMSCUI.DLL at 0x3c45039c一开始以为是因为装了2003、2005后,导致无法安装6.0,遂卸载2003、2005,但运行setup的时候还是碰到同样的问题!很奇怪。为什么不先上网搜索以下信息呢?原创 2007-03-23 15:45:00 · 2751 阅读 · 2 评论 -
Win32 Thread API学习
第一个 API :创建一个线程 CreateThread() The CreateThread function creates a thread to execute within the address space of the calling process. HANDLE Crea原创 2007-03-20 00:28:00 · 1200 阅读 · 0 评论 -
一个小小的烦恼
没多久就要搬家了。 不过有一个小小的烦恼 那就是, 我有太多的书了! 什么时候才能像许文强那样一个箱子独闯上海滩?以后买书要谨慎了。 等N年以后有了自己的房子后,。。。不知道N年到底是几年阿。原创 2007-03-20 00:52:00 · 621 阅读 · 0 评论 -
Hyper-Threading Technology
What is it?Each physical processor is presented as multiple logical processors.Why is it effective?Duplication of a small amount of silicon increases overall resource utilization. Duplicated原创 2007-03-20 00:18:00 · 954 阅读 · 0 评论 -
C++编译选项学习
1、 如何判断是32位的还是64位的/* Find the arch type */ #if defined(__x86_64__) || defined(_M_X64) # 说明是64位的 #else # 说明是32位的 2、 如何判断使用的是什么编译器#if defined( _MSC_VER ) # 说明是微软的vc编译器 #elif defined( __GN原创 2007-03-20 00:39:00 · 1009 阅读 · 0 评论 -
再次探讨c++只支持single dispatch
前几次写了一下关于c++不支持多分派(包括双分派)的问题,应该说是学习了,本人还是个菜鸟啊。发现我自己把多分派给搞复杂了!其实双分派这个概念也是从学visitor模式看到的,其意义在于接受者和参数都能在运行时决定它的类型,但是c++只支持单分派,也就是说参数的类型将在编译阶段决定。所以其实想要演示一下这个问题的话,其实,是非常简单的!如下://///////////////////////////原创 2007-03-21 08:54:00 · 1297 阅读 · 0 评论 -
银行家算法学习
银行家算法是著名的操作系统用来解决死锁问题的算法。它是如何实现解决死锁问题的呢?今天稍微学习了一下,就稍微说一下其原理吧,免得忘了。其实原理很简单! Banker algorithm最重要的一点是:保证操作系统的安全状态!这也是操作系统判断是否分配给一个进程资源的标准!那什么是安全状态?举个小例子,进程P需要申请8个资源(假设都是一样的),已经申请了5个资源,还差3个资源。若这原创 2007-03-21 19:00:00 · 1225 阅读 · 1 评论 -
PAL和NTSC
常见的电视信号制式是PAL和NTSC,另外还有SECAM等。 NTSC即正交平衡调幅制。PAL为逐行倒像正交平衡调幅制。 PAL电视标准 PAL电视标准,每秒25帧,电视扫描线为625线,奇场在前,偶场在后,标准的数字化PAL电视标准分辨率为720*576, 24比特的色彩位深,画面的宽高比为4:3, PAL电视标准用于中国、欧洲等国家和地区。 NTSC电视标准 NTSC电视标准,每秒29.97帧原创 2007-03-20 13:55:00 · 1040 阅读 · 0 评论 -
精简指令集RISC
RISC和CISC是CPU从指令集的特点上可以分为两类:CISC和RISC。RISC是英文Reduced Instruction Set Computing的缩写,就是"精简指令运算集”。CISC就是"复杂指令运算集"。RISC的指令系统相对简单,它只要求硬件执行很有限且最常用的那部分指令,大部分复杂的操作则使用成熟的编译技术,由简单指令合成。目前在中高档服务器中普遍采用这一指令系统的CPU,原创 2007-03-21 19:33:00 · 2108 阅读 · 0 评论 -
多线程计算PI碰到的问题
例子如下,用于计算PI的值。gIterations是计算PI的迭代次数,gThreadCount是线程的个数。方法是这样子的,把PI分成gThreadCount个段,分别让一个线程来执行PI的求值操作。求得PI值有两种方法,一种是直接把各个线程每一步所求得的值加到gSum上去,另一种是把各个线程所求得的值加到一个与之对应的全局变量中去。对每个线程i,输出Thread number:I aaaaaa原创 2007-03-23 23:41:00 · 3710 阅读 · 1 评论 -
游戏中的物理引擎
物理引擎主要包含游戏世界中的物体之间、物体和场景之间发生碰撞后的力学模拟,以及发生碰撞后的物体骨骼运动的力学模拟(比较著名的物理引擎有havok公司的game dynamics sdk,还有open source 的ODE—Open Dynamics Engine)。其他还有physX, OPAL等。效率来说Havok是软件模拟最快的。而PhysX提供的接口是非常好和简单易学的。原创 2007-03-28 23:20:00 · 3758 阅读 · 0 评论 -
链接器干了些什么?
链接器都干了些什么?目前项目在不停的增长,我想还是在它规模仍旧很小的时候把它的模块分清楚,不同模块分到不同的projects里面,这里面出现了很多问题,也反映了我知识上的很多不足。1,project最后的输出要设置清楚,有的是static lib,有的是dll,有的是exe,不一样的输出要设置好,它们都是linker的成果,但是以不同的方式应用。2,project depende原创 2007-03-29 19:19:00 · 1057 阅读 · 0 评论 -
Ogre介绍
网址:www.ogre3d.org什么是OGRE?Ogre是Object-Oriented Graphics Rendering Engine,面向对象的图形渲染引擎。OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ desig原创 2007-03-30 10:56:00 · 835 阅读 · 0 评论 -
谈谈面向对象
面向对象是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。不过我想上面说的应该是国外吧!不知道国内的90年代OO是否风靡啊。偶是21世纪才开始接触电脑的。记得那时候老师在给我们上C++课的时候,拼命说什么C++好啊,面向对原创 2007-04-09 20:55:00 · 887 阅读 · 0 评论 -
关于MFC下检查和消除内存泄露的技巧
摘要本文分析了Windows环境使用MFC调试内存泄露的技术,介绍了在Windows环境下用VC++查找,定位和消除内存泄露的方法技巧。关键词:VC++;CRT 调试堆函数;试探法。编译环境VC++6.0技术原理检测内存泄漏的主要工具是调试器和 CRT 调试堆函数。若要启用调试堆函数,请在程序中包括以下语句: #define CRTDBG_MAP_ALLOC#include #incl原创 2007-04-09 09:09:00 · 879 阅读 · 0 评论 -
Rational Rose 2003下载地址
http://www.21php.com/Rational Rose 2003.rar昨晚下的,速度100K左右原创 2007-04-10 09:22:00 · 1101 阅读 · 0 评论 -
DeinoMPI
DeinoMPI is an implementation of MPI-2 for Microsoft Windows. DeinoMPI是微软windows下MPI-2的一个实现。注:MPI-2是Message Passing Interface, http://www.mpi-forum.org/。What is MPI? MPI is a library of functions原创 2007-04-10 10:57:00 · 985 阅读 · 0 评论 -
可变参数研究
一. 何谓可变参数int printf( const char* format, ...); 这是使用过C语言的人所再熟悉不过的printf函数原型,它的参数中就有固定参数format和可变参数(用”…”表示). 而我们又可以用各种方式来调用printf,如:printf("%d",value); printf("%s",str); printf("the number is %d ,string原创 2007-04-10 11:01:00 · 812 阅读 · 0 评论 -
Finding crash information using the MAP file 2
很奇怪,cppblog居然不能发表评论了,哭。。。所以就在发一篇了哦,呵呵。Finding crash information using the MAP filehttp://www.cppblog.com/jacky2019/archive/2007/04/09/21527.html上文中的关于小说明的第2点是有问题的偶又试了一次,发现lines number可能是有问题的,而且也不是我的原创 2007-04-10 11:27:00 · 880 阅读 · 0 评论 -
动态语言
所谓动态语言,也叫脚本语言,就是说一种在执行期间才去发现数据类型的程序设计语言,主要创建一些需要经常更新的动态系统。常见的有Python, Lua, Perl, PHP等。以往,我们所使用的语言,比如C,C++等等,都称为静态语言。什么是静态语言呢?就是说,在使用数据之前,我们必须首先定义数据类型,这些数据类型包括int, float, double等等。就相当于在使用它们之前,首先要为它们分原创 2007-04-16 18:14:00 · 904 阅读 · 0 评论 -
Intel.VTune.Performance.Analyzer.v8.0.014.ISO下载
http://down.gogobox.com.tw/kisser/7ir3不过下载的时候要安装一个ActiveX插件的原创 2007-04-13 16:08:00 · 1463 阅读 · 0 评论 -
求n!的结果中末尾0的个数
终于悟到了。首先,很容易想到的就是,求0的个数,就是求5的个数(如果这个你都想不明白的话,那就。。。再好好想想吧,呵呵);接下来,如何求5的个数呢?如果遍历一遍的话,那显然是太慢了!因为这种计算题太有规律了!想了好久,终于想出来了:Result = 0; // 最后的结果while ( N >= 5 ){ N /= 5; Result += N;}// 结束了。原创 2007-04-19 15:26:00 · 1483 阅读 · 0 评论 -
Finding crash information using the MAP file
非常好的一篇文章,from: http://www.codeproject.com/debug/mapfile.asp, by Wouter Dhondt几点小说明1、该文是针对vc6.0的,不过vs2003同样适用 In the C/C++ tab, select "Line Numbers Only" for Debug Info 对应于 Release-->C/C++ tab-->调试信原创 2007-04-09 13:45:00 · 1117 阅读 · 0 评论 -
显卡是干什么用的?
突然想到这个问题。不知道!刚才看书看到GDI的时候想到的。Google了一下,不过下面的资料似乎有点old了,不过如果你也一样和我有同样的疑问的话,还是有的一读的,呵呵。显卡又称显示器适配卡,现在的显卡都是3D图形加速卡。它是是连接主机与显示器的接口卡。其作用是将主机的输出信息转换成字符、图形和颜色等信息,传送到显示器上显示。显示卡插在主板的ISA、PCI、AGP扩展插槽中,ISA显示卡现已基原创 2007-04-05 15:17:00 · 2762 阅读 · 0 评论 -
多线程同步机制摘要
Critical SectionCritical section(临界区)用来实现“排他性占有”。适用范围是单一进程的各线程之间。它是:· 一个局部性对象,不是一个核心对象。· 快速而有效率。· 不能够同时有一个以上的critical section被等待。· 无法侦测是否已被某个线程放弃。MutexMu原创 2007-04-03 19:34:00 · 1180 阅读 · 0 评论 -
创建自己的CriticalSection和Lock
Lockable.h: CriticalSection的抽象父类class LockableObject{ public: LockableObject(){} virtual ~LockableObject(){} virtual void Lock() = 0; vir原创 2007-04-04 21:27:00 · 1181 阅读 · 0 评论 -
微软C/C++编译器选项参考
微软C/C++ 编译器选项 -优化- /O1原创 2007-04-04 10:54:00 · 1136 阅读 · 0 评论 -
CRuntimeClass的应用
CRuntimeClass在MFC中的作用很重要,因为MFC利用它来进行类的动态确定,即是通过类变量来判定该变量是否为某一类的实例。由于指针的类型是可以转换的,所以时常会出现从A到B的转换导致错误。而在MFC的各种书籍中对CRuntimeClass的介绍是比较少的,在这里总结它的一些用法。1、动态确定类在MFC中CObject::IsKindOf( const CRuntimeClass*原创 2007-04-06 10:08:00 · 1014 阅读 · 0 评论