﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-掌握根本、力争创新</title><link>http://www.cppblog.com/tspha/</link><description>达则兼济天下；穷则独善其身</description><language>zh-cn</language><lastBuildDate>Thu, 09 Apr 2026 06:49:56 GMT</lastBuildDate><pubDate>Thu, 09 Apr 2026 06:49:56 GMT</pubDate><ttl>60</ttl><item><title>ASP.NET底层架构探索</title><link>http://www.cppblog.com/tspha/archive/2007/04/16/22023.html</link><dc:creator>风网</dc:creator><author>风网</author><pubDate>Mon, 16 Apr 2007 08:12:00 GMT</pubDate><guid>http://www.cppblog.com/tspha/archive/2007/04/16/22023.html</guid><wfw:comment>http://www.cppblog.com/tspha/comments/22023.html</wfw:comment><comments>http://www.cppblog.com/tspha/archive/2007/04/16/22023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tspha/comments/commentRss/22023.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tspha/services/trackbacks/22023.html</trackback:ping><description><![CDATA[今天看了天极网的"ASP.NET底层架构探索"，感觉不错。自己也打算对他所讲的做个整理，以方便理解。<br>参考：<a href="http://soft.yesky.com/lesson/62/2612562.shtml">http://soft.yesky.com/lesson/62/2612562.shtml</a>
<img src ="http://www.cppblog.com/tspha/aggbug/22023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tspha/" target="_blank">风网</a> 2007-04-16 16:12 <a href="http://www.cppblog.com/tspha/archive/2007/04/16/22023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WIN32多线程程序设计的基本概念</title><link>http://www.cppblog.com/tspha/archive/2007/04/16/22010.html</link><dc:creator>风网</dc:creator><author>风网</author><pubDate>Mon, 16 Apr 2007 04:46:00 GMT</pubDate><guid>http://www.cppblog.com/tspha/archive/2007/04/16/22010.html</guid><wfw:comment>http://www.cppblog.com/tspha/comments/22010.html</wfw:comment><comments>http://www.cppblog.com/tspha/archive/2007/04/16/22010.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tspha/comments/commentRss/22010.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tspha/services/trackbacks/22010.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环。在多线程程序设计时,我们首先要了解进程和线程的基本概念及它们之间的关系。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: red">进程（Process）</span>是具有一定独立功能的程序关于某个数据集合上的一次运行活动，是系统进行资源分配和调度的一个独立单位。进程是程序在某个数据集上的执行，是一个动态实体。它因创建而产生，因调度而运行，因等待资源或事件而被处于等待状态，因完成任务而被撤消，反映了一个程序在一定的数据集上运行的全部动态过程。<br><span style="COLOR: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;线程（Thread）</span>是进程的一个实体，是CPU调度和分派的基本单位。线程不能够独立执行，必须依存在应用程序中，由应用程序提供多个线程执行控制。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: red">线程和进程的关系是</span>：线程是属于进程的，线程运行在进程空间内，同一进程所产生的线程共享同一内存空间，当进程退出时该进程所产生的线程都会被强制退出并清除。线程可与属于同一进程的其它线程共享进程所拥有的全部资源，但是其本身基本上不拥有系统资源，只拥有一点在运行中必不可少的信息(如程序计数器、一组寄存器和栈)。每个进程具有独立的地址空间，而该进程内的所有线程共享该地址空间。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 常用的<span style="COLOR: red">进程间通信（IPC）</span>机制有:（1）剪贴板(Clip Board)；（2）动态数据交换(Dynamic Data Exchange)；（3）组件对象模型(Component Object Model)；（4）文件映射(File Mapping)；（5）邮件槽(Mail Slots)；（6）管道(Pipes)；（7）Win32套接字(Socket)；（8）远程过程调用(Remote Procedure Call)；（9）WM_COPYDATA消息(WM_COPYDATA Message)。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WIN32靠线程的优先级（达到抢占式多任务的目的）及分配给线程的CPU时间来调度线程。多线程调度的机制为：<br>&nbsp;1）运行一个线程，直到被中断或线程必须等待到某个资源可用；<br>&nbsp;2）保存当前执行线程的描述表(上下文)；<br>&nbsp;3）装入下一执行线程的描述表(上下文)；<br>&nbsp;4）若存在等待被执行的线程，则重复上述过程。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WIN32核心对象包括进程、线程、文件、事件、信号量、互斥体和管道，核心对象可能有不只一个拥有者，甚至可以跨进程。WIN32线程控制主要实现线程的创建、终止、挂起和恢复等操作，这些操作都依赖于WIN32提供的一组API和具体编译器的C运行时库函数。线程之间通信的两个基本问题是互斥和同步。在WIN32中，同步机制主要有以下几种：（1）事件(Event);（2）信号量(semaphore);（3）互斥量(mutex);（4）临界区(Critical section)。</p>
<img src ="http://www.cppblog.com/tspha/aggbug/22010.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tspha/" target="_blank">风网</a> 2007-04-16 12:46 <a href="http://www.cppblog.com/tspha/archive/2007/04/16/22010.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>求助:visual c++.net 2003下如何自定义资源?!</title><link>http://www.cppblog.com/tspha/archive/2007/04/16/21992.html</link><dc:creator>风网</dc:creator><author>风网</author><pubDate>Mon, 16 Apr 2007 00:09:00 GMT</pubDate><guid>http://www.cppblog.com/tspha/archive/2007/04/16/21992.html</guid><wfw:comment>http://www.cppblog.com/tspha/comments/21992.html</wfw:comment><comments>http://www.cppblog.com/tspha/archive/2007/04/16/21992.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/tspha/comments/commentRss/21992.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tspha/services/trackbacks/21992.html</trackback:ping><description><![CDATA[最近在看《windows程序设计》这本书，但是在菜单及其他资源这章中有个例子不能正常模拟。<br>这个例子是关于如何使用自定义资源的。但我是在visual c++.net 2003中模拟的。<br>我是这么添加TEXT自定义资源的．<br><br>在资源视图的test2.rc单击右键，然后选择导入，选择了一个文本文件．然后再输入ＴＥＸＴ作为它的类型．<br>打开后，可看到文件有载入．打开该资源的二进制代码，它的左侧却有00000000等.这应该是内存地址吧？！难道这时就有地址？或则是相对地址？<br>我选取test2.cpp中的部分代码：<br>hResource =LoadResource(hInst,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FindResource (hInst,MAKEINTRESOURCE("IDR_TEXT"),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TEXT ("TEXT"))) ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>pText = (char *)LockResource(hResource);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>iNumLines = 0 ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>while (*pText != '\\' &amp;&amp; *pText != '\0')<br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; if (*pText == '\n')&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iNumLines ++ ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;pText = AnsiNext (pText) ;<br>}<br>&nbsp;*pText = '\0' ;<br>编译时会出现如下错误：<br>test2.exe 中的 0x00412100 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突 。<br>观察程序中pText指针的值是0x00000000.<br><br>麻烦哪位兄弟帮忙解决？或则告诉我另外添加自定义资源的方法，谢谢 
<img src ="http://www.cppblog.com/tspha/aggbug/21992.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tspha/" target="_blank">风网</a> 2007-04-16 08:09 <a href="http://www.cppblog.com/tspha/archive/2007/04/16/21992.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>