windows 程序设计
jubincn
这个作者很懒,什么都没留下…
展开
-
进程 转自维基百科
进程进程是计算机中已运行程序的实体。进程是线程的容器,进程本身不运行。程序本身只是指令的集合,进程才是程序(指令)的真正运行。每个程序可以有多个进程,每个进程都有自己的资源。 内容一个计算机系统进程包括(或者说“拥有”)拥有下列数据:那个程序的可运行机器码的一个在存储器的图像。分配到的存储器(通常包括虚拟内存的一个区域)。存储器的内容包括可运行代码、特定于进程的数据转载 2009-03-12 21:39:00 · 945 阅读 · 0 评论 -
用户模式 VS 内核模式 转自维基百科(http://en.wikibooks.org/wiki/Windows_Programming/User_Mode_vs_Kernel_Mode)
用户模式: 通过windows启动的任何一个进程都在用户模式(user mode)下运行,在这种模式下的进程不能访问其它进程的资源,除非通过API调用。在这种模式下运行的程序不能处理中断(interrupts)和环境切换(context switching)。 中断(interrupts): CPU在运行时经常被一些事件打断(interrupt),如计时器,键盘,硬盘等。这些事件就转载 2009-03-12 21:14:00 · 1716 阅读 · 0 评论 -
Virtual Memory 转自维基百科(http://en.wikibooks.org/wiki/Windows_Programming/User_Mode_vs_Kernel_Mode)
一个程序启动后,它将在自己的进程(process)中运行。每个进程都有自己“虚拟的”内存空间和资源。之所以说进程的空间是虚拟,是因为程序本身知道的内存地址并不一定是真实的地址。如一个进程可能认为自己在0x12345678中,但实际上物理内存中的地址是0x42312157。(如下图所示)这样设计有这样两个好处:(1)一个进程不能访问其它进程的内存空间。(2)不活跃的区域可以被临时放入转载 2009-03-12 20:31:00 · 1212 阅读 · 0 评论 -
Dynamic Link Libraries(转自:wikipedia)
Dynamic Link Libraries DLL DLL可以将一些代码段编译后放到一个库中,并可以被多个程序所使用。也就是说,只需用存储一份动态连接库文件就可以使多个程序共享,从而减小了程序的体积。DLL与静态链接库的不同之处在于在编译的时候静态链接库会被编译到可执行程序中,而DLL则不会进入程序。这样程序在运行时就可以只在必要时才加载DLL,从而节省了内存空间。 _ _ de转载 2009-03-13 19:58:00 · 976 阅读 · 0 评论 -
解决外部符号错误:_main,_WinMain@16,__beginthreadex 转自:liuhuinwpu
在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数,就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2转载 2009-03-12 19:45:00 · 739 阅读 · 0 评论 -
Intel中的“ring”机制 转自维基百科(http://en.wikibooks.org/wiki/Windows_Programming/User_Mode_vs_Kernel_Mode)
在windows和大多数现代操作系统中,有两种泾渭分明的代码运行模式,一种是“用户模式”,另一种是“内核模式”。intel的cpu中采用了“ring”这种技术Ring0:也叫kernel mode windows kernel运行的区域,可以使用一切资源Ring3:也叫user mode 对各种资源的访问有严格的限制转载 2009-03-12 20:49:00 · 1354 阅读 · 0 评论 -
今日调试之感想
今日调试之感想今天不小心修改了资源文件,结果雷区就显示不出来了,怎么看代码也看不出错误,后来删除了dubug中的一些文件程序才出来,我猜是在debug中的那些资源文件没有更改,每次修改VC6只是将代码文件修改,而不是全部重建。在resource.h中对每个图片定义的数值,是相对来说可以任意指定的,修改他们并没有什么问题,但在编译时需要将debug中的文件删掉,这样才能正确地载人资源原创 2009-05-23 12:53:00 · 689 阅读 · 0 评论