#0016 fFibo。Open (〃FIBO。DAT〃; CFile::modeWrite |
#0017 CFile::modeCreate | CFile::typeText);
#0018
#0019 str。Format (〃%sn〃; 〃Fibonacci sequencee; less than 100 :〃);
#0020 printf(〃%s〃; (LPCTSTR) str);
#0021 fFibo。WriteString (str);
#0022
#0023 lo = hi = 1;
#0024
#0025 str。Format (〃%dn〃; lo);
#0026 printf(〃%s〃; (LPCTSTR) str);
#0027 fFibo。WriteString (str);
#0028
#0029 while (hi 《 100)
#0030 {
#0031 str。Format (〃%dn〃; hi);
#0032 printf(〃%s〃; (LPCTSTR) str);
#0033 fFibo。WriteString (str);
#0034 hi = lo + hi;
#0035 lo = hi lo;
#0036 }
#0037
#0038 fFibo。Close ();
#0039 return 0;
#0040 }
以下是执行结果(在 console 窗口和 FIBO。DAT 档案中,结果都一样):
36
…………………………………………………………Page 99……………………………………………………………
Fibonacci sequencee; less than 100 :
1 1 2 3 5 8
13
21
34
55
89
这么简单的例子中,我们看到MFC Console 程序的几个重点:
1。 程序进入点仍为main
2。 需包含所使用之类别的头文件(本例为AFX。H )
3。 可直接使用与GUI 无关的MFC 类别(本例为CStdioFile 和CString )
4。 编辑时需指定/MT,表示使用多执行线程版本的C runtime 函数库。
第4点需要多做说明。在MFC console 程序中一定要指定多线程版的C runtime 函数库,
所以必须使用/MT 选项。如果不做这项设定,会出现这样的联结错误:
Microsoft (R) 32…Bit Incremental Linker Version 5。00。7022
Copyright (C) Microsoft Corp 1992…1997。 All rights reserved。
/out:mfccon。exe
mfccon。obj
nafxcw。lib (thrdcore。obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcw。lib (thrdcore。obj) : error LNK2001: unresolved external symbol __beginthreadex
mfccon。exe : fatal error LNK1120: 2 unresolved externals
表示它找不到__beginthreadex 和__endthreadex 。怪了,我们的程序有调用它们吗?没
有,但是MFC 有!这两个函数将在稍后与执行线程有关的小节中讨论。
MFCCON 的源代码与可执行文件放在书附盘片的mfccon。01 子目录中。
37
…………………………………………………………Page 100……………………………………………………………
什么是C Runtime 函数库的多线程版本
当C runtime 函数库于1970s 年代产生出来时,PC 的内存容量还很小,多任务是
个新奇观念,更别提什么多执行线程了。因此以当时产品为基础所演化的C runtime 函
数库在多线程(multithreaded)的表现上有严重问题,无法被多线程程序使用。
利用各种同步机制( )如 、 、 、
synchronous mechanism critical section mutex semaphore
,可以重新开发一套支持多执行线程的 函数库。问题是,加上这样的能
event runtime
力,可能导至程序代码大小和执行效率都遭受不良波及 即使你只激活了一个执行
…
线程。
Visual C++ 的折衷方案是提供两种版本的C runtime 函数库。一种版本给单线程程序
使用,一种版本给多线程程序使用。多线程版本的重大改变是,第一,变量如errno 者
现在变成每个执行线程各拥有一个。第二,多线程版中的数据结构以同步机制加以保护。
Visual C++ 一共有六个C runtime 函数库产品供你选择:
◆ ( )
Single…Threaded static libc。lib 898;826
( )
Multithreaded static libcmt。lib 951;142
◆
Multithreaded DLL msvcrt。lib 5;510;000
◆
( )
Debug Single…Threaded static libcd。lib 2;374;542
◆
( )
Debug Multithreaded static libcmtd。lib 2;949;190
◆
◆ Debug Multithreaded DLL msvcrtd。lib 803;418
Visual C++ 编译器提供下列选项,让我们决定使用哪一个C runtime 函数库:
◆ ( )
/ML Single…Threaded static
◆ ( )
/MT Multithreaded static
( )
/MD Multithreaded DLL dynamic import library
◆
( )
/MLd Debug Single…Threaded static
◆
( )
/MTd Debug Multithreaded static
◆
◆ ( )
/MDd Debug Multithreaded DLL dynamic import library
38
…………………………………………………………Page 101……………………………………………………………
进程与执行线程 ( )
Process and Thread
OS/2 Windows NT Windows 95 PC
、 以及 都支持多执行线程,这带给 程序员一股令人兴
奋的气氛。然而它带来的不全然是利多,如果不谨慎小心地处理执行线程的同步问题,程
序的错误以及除错所花的时间可能使你发誓再也不碰「执行线程」这种东西。
我们习惯以进程(process )表示一个执行中的程序,并且以为它是CPU 排程单位。事
实上执行线程才是排程单位。
核心对象
首先让我解释什么叫作「核心对象」(kernel object )。「GDI 对象」是大家比较熟悉的
GDI Pen Brush GDI
东西,我们利用 函数所产生的一支笔( )或一支刷( )都是所谓的「
对象」。但什么又是「核心对象」呢?
你可以说核心?
小说推荐
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 其他
- 最新章:第295章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- 深入浅出
- 《深入浅出》作者:白小骨晋江VIP20140610完结+1番外非V章节总点击数:67370 总书评数:209 当前被收藏数:764 文章积分:11,386,657文案:每个前男友都是女人掉过的坑,从何典阳这个坑里往外爬的梁温暖一脸血表示,何典阳他这个深坑实在太坑爹。何典阳:我是坑?梁温暖…别看我,我
- 激情
- 最新章:第74章
- 深入浅出[娱乐圈]
- 文案【忠犬影帝攻X傲娇明星受,1V1轻松甜文,前期互相试探,38章在一起后甜甜甜,两人都有细微的变化和成长~这也是我用心构思攻受感情发展的文,但数据有点太惨了,没入V可以全文免费看,还是想求点收藏呀,数据好看点吧,让我开心一下(笑哭.jpg)流量偶像白漾和影帝顾瑜祁关系很僵,传言两人出道时不合而互相
- 激情
- 最新章:第59章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 其他
- 最新章:第28章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 其他
- 最新章:第27章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章