云端书斋 -Windows via C/C++Windows via C/C++
本书资料更新时间:2025-01-19 17:35:16

Windows via C/C++Windows via C/C++ 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线

Windows via C/C++Windows via C/C++精美图片
》Windows via C/C++Windows via C/C++电子书籍版权问题 请点击这里查看《

Windows via C/C++Windows via C/C++书籍详细信息

  • ISBN:9780735624245
  • 作者:暂无作者
  • 出版社:暂无出版社
  • 出版时间:2007-10
  • 页数:848
  • 价格:557.00
  • 纸张:胶版纸
  • 装帧:精装
  • 开本:16开
  • 语言:未知
  • 丛书:暂无丛书
  • TAG:暂无
  • 豆瓣评分:暂无豆瓣评分
  • 豆瓣短评:点击查看
  • 豆瓣讨论:点击查看
  • 豆瓣目录:点击查看
  • 读书笔记:点击查看
  • 原文摘录:点击查看
  • 更新时间:2025-01-19 17:35:16

内容简介:

  Jeffrey Richter is a cofounder of Wintellect a training, debugging, and consulting firm dedicated to helping companies build better software faster. He is the author of CLR via C#, Applied Microsoft .NET Framework Programming, and several other Windows-related programming books. Jeffrey is also a contributing editor and columnist for MSDN® Magazine. He has been consulting with the .NET Framework team since October 1999.

Christophe Nasarre works for BusinessObjects, a multinational business-intelligence consultancy and training company that is focused on helping organizations gain better insight into their business through business intelligence solutions. He has worked as a technical editor on numerous Microsoft Press books .


书籍目录:

Part I Required Reading

 1 Error Handling

 2 Working with Characters and Strings

 3 Kernel Objects

Part II Getting Work Done

 4 Processes

 5 Jobs

 6 Thread Basics

 7 Thread Scheduling, Priorities, and Affinities

 8 Thread Synchronization in User Mode

 9 Thread Synchronization with Kernel Objects

10 Synchronous and Asynchronous Device I/O

11 The Windows Thread Pool

12 Fibers

part III Memory Management

13 Windows Memory Architecture

14 Exploring Virtual Memory

15 Using Virtual Memory in Your Own Applications

16 A Thread's Stack

17 Memory-Mapped Files

18 Heaps

Part IV Dynamic-Link Libraries

 19 DLL Basics

 12 DLL Advanced Techniques

 21 Thread-Local Storage

 22 DLL Injection and API Hooking

Part V Structured Exception Handling

 23 Termination Handlers

 24 Exception Handlers and Software Exceptions

25 Unhandled Exceptions, Vectored Exception Handling, and C++Exceptions

26 Error Reporting and Application Recovery

Part VI Appendixes

 A The Build Environment

 B Message Crackers, Child Control Macros,and API Macros


作者介绍:

暂无相关内容,正在全力查找中


出版社信息:

暂无出版社相关信息,正在全力查找中!


书籍摘录:

暂无相关书籍摘录,正在全力查找中!


在线阅读/听书/购买/PDF下载地址:


原文赏析:

垮进程边界共享内核对象的第二个办法是为对象命名。许多(但不是全部)内核对象都可以进行命名。

CreateMutex,CreateEvent,CreateSemaphore,CreateWaitableTimer,CreateFileMapping,CreateObject这些API都可以创建命名的内核对象。

用于创建内核对象的函数总是返回具有完全访问权限的句柄。如果想限制一个句柄的访问权限,可以使用这些函数带Ex后缀的扩展版本。

通过名称来创建内核对象共享时,请注意:进程B调用CreateMutex时,它向函数传递安全属性信息和第二个参数。如果已经存在一个指定名称的对象,这些参数就会被忽略。事实上,可以用GetLastError来判断自己刚才是真的创建一个新的内核对象还是仅仅打开了一个现有的。

调用CreateXX函数和调用OpenXX函数的主要区别在于,如果对象不存在,CreateXX会创建它;OpenXX函数则不同,如果对象不存在,它只是简单以调用失败告终。所以,微软没有提供任何专门机制来保证我们创建独一无二的对象名。所以如果来自两个不同公司的两个程序都试图创建名为“MyObejct”的对象,那么就会出现问题,所以一般建议是创建一个GUID,并将这个GUID的字符串形式作为自己的对象名使用。


在正在运行终端服务的计算机中,有多个用于内核对象的命名空间。其中一个是全局命名空间,所有客户端都能访问的内核对象要放在这个命名空间中。这个命名空间主要由服务使用。此外每个客户端会话(Client Session)都有自己的一个命名空间

一个服务的命名内核对象始终位于全局命名空间内的。默认情况下,在终端服务中,引用程序自己的命名内核对象在会话的命名空间内。我们可以强制把一个命名对象放入全局命名空间,做法是在其名称前加入“Global”前缀,同理,可以把一个命名对象放入当前会话的命名空间,做法是在其名称前加入“Local”前缀。

CreateEvent(NULL,FALSE,FALSE,TEXT("Global\MyName"))

CreateEvent(NULL,FALSE,FALSE,TEXT("Local\MyName"))


创建一个内核对象时,可以传递一个安全描述符指针,从而保护该对象的访问。不过在windows Vista以前,不可能防止一个共享对象的名称被“劫持”。任何进程,即使是最低权限的进程都能用任何指定的名称来创建一个对象。这样就很容易另外写一个应用程序来创建一个同名的内核对象。如果它先于单实例应用程序启动,那么单实例的应用程序就变成了无实例的应用程序-------始终一启动就退出,错误地认为它自己的另一个实例已经在运行。这就是DOS攻击的基本机制。但是注意,未命名的内核对象不会遭到DOS攻击。未命名的对象是不能在进程之间共享的。

CreatePrivateNamespace创建一个专有的命名空间。


跨进程边界共享内核对象的最后一招是使用DuplicateHandle,简单的说,这个函数获得一个进程的句柄表中的一个记录项,然后在另一个进程的句柄表中创建这个记录的一个副本。


第1章 错误处理

P3 常见Windows函数返回值数据类型:VOID, BOOL, HANDLE, PVOID, LONG/DWORD

P4 DWORD GetLastError(); 返回由上一个函数调用设置的线程的32位错误代码 (WinError.h)

在Visual Studio 的Watch窗口中使用$err,hr来查看当前线程的“上一个错误代码”

P6 FormatMessage

第2章 字符和字符串处理

P21 _countof //errno_t result = _tcscpy_s(szBuffer, _countof(szBuffer), TEXT("0123456789"));

P24 CompareString(); CompareStringOrdinal();

P25 修改与字符串有关的计算:传入的是缓冲区大小的字符数,而不是字节数,即_countof(szBuffer)非sizeof(szBuffer);如需要为一个字符串分配一个内存块,而且知道字符串中的字符数,那么内存是以字节来分配的,即malloc(nCharacters*sizeof(TCHAR)),非malloc(nCharacters)

P28 ANSI与UNICODE之间的相互转化,一般是把ANSI版本函数中的字符串转换为UNICODE,之后调用UNICODE函数,把结果再转换为ANSI

P30 用IsTextUnicode函数判断文本是否Unicode编码有可能返回错误结果。测试缓冲区内的字节数越多,结果越精确。

第3章 内核对象 kernel object

P32 内核对象的几种类型:访问令牌对象,事件对象,文件对象,文件映射对象,I/O完成端口对象,作业对象,邮件槽对象,互斥量对象,管道对象,进程对象,信号量对象,线程对象,可等待计时器对...


P36 进程内核对象句柄表:只是由数据结构组成的数组,每个数据结构包含指向一个内核对象的指针,一个访问掩码和一些标志。

P38 注意创建一个新内核对象后返回的句柄,有可能是NULL,也有可能是INVALID_HANDLE_VALUE

P40 假定忘记调用CloseHandle,会发生对象泄漏的情况吗?嗯,不一定。

P42 3种不同的机制允许进程共享内核对象:1使用对象句柄继承,2为对象命名,3复制对象句柄

P44 对象句柄的继承只会在生成子进程的时候发生。之后父进程又有什么新的句柄被创建跟子进程无关,不会被继承。

子进程并不知道自己继承了任何句柄。

P46 改变句柄的标志 SetHandleInformation 其中HANDLE_FLAG_PROTECT_FROM_CLOSE是为了防止子进程在生成孙进程之前就已经先把句柄关闭了,保护孙进程有更大的机会继承到子进程的句柄,可以让孙进程与父进程通信

P48 可以在创建一个新内核对象后,马上调用GetLastError,判断是真创建还是仅打开了一个现有的。

P51 专有命名空间

P58 跨进程边界共享内核对象,使用DuplicateHandle

第4章 进程

P65 线程的定义:一个内核对象,一个地址空间

P66 链接器设置,对于GUI程序是/SUBSYSTEM:WINDOWS;对于CUI程序是/SUBSYSTEM:CONSOLE

P71 HMODULE和HINSTANCE完全是一回事。

P72 GetModuleHandle函数的两大重要特征,1只检查主调进程的地址空间。2调用GetModuleHandle并向其传递NULL值,会返回进程的地址空间中的可执行文件的基地址。

P74 获得进程的环境变量GetEnvironmentStrings() ; CUI专用,利用TCHAR* e...


其它内容:

编辑推荐

作者简介:

  Jeffrey Richter is a co-founder of Wintellect (http://www. Wintellect.com/), a training, debug-ging, and consulting company dedicated to helping companies produce better software faster.Jeff has written many books, including CLR via C# (Microsoft Press, 2005). Jeff is also a con-tributing editor for MSDN Magazine, where he has written several feature articles and is a col-umnist. Jeff also speaks at various trade conferences worldwide, including VSLive!, and Microsoft's TechEd and PDC. Jeff has consulted for many companies, including AT&T,DreamWorks, General Electric, Hewlett-Packard, IBM, and Intel. For icrosoft, Jeff's code has shipped in many products including TerraServer, Visual Studio, the .NET Framework, Office,and various versions of Windows. On the personal front, Jeff holds both airplane and helicop-ter pilot licenses, though he never gets to fly as often as he'd like. He is also a member of the International Brotherhood of Magicians and enjoys showing friends sleight-of-hand card tricks from time to time. Jeff's other hobbies include music, drumming, model railroading,boating, traveling, and the theater. He and his family live in Kirkland, Washington.


书籍介绍

Get the preeminent guide to programming application for Windows with C++. Programming Applications for Microsoft Windows is a classic book (formerly titled Advanced Windows, Third Edition) and is now fully updated for Windows Vista, including the latest information about Windows XP. In-depth and comprehensive, this essential reference covers the Windows operating system and how to program at the API level. Recognized experts provide an inside view of how Windows works and how to use its features in Visual C++ development tasks. Topics covered include processes, thread pooling, virtual memory, DLLs, file I/O, and message crackers. For systems-level programmers, this is a must-have title. Includes code samples in Visual C++. Features coverage of classic topics such as thread pooling, heaps, and advanced DLL techniques Provides expert guidance fully updated for Windows Vista Provides extensive sample code in Visual C++ 2005

点击链接进入中文版:

Windows核心编程(第5版)


书籍真实打分

  • 故事情节:4分

  • 人物塑造:8分

  • 主题深度:7分

  • 文字风格:4分

  • 语言运用:4分

  • 文笔流畅:7分

  • 思想传递:4分

  • 知识深度:5分

  • 知识广度:7分

  • 实用性:9分

  • 章节划分:6分

  • 结构布局:8分

  • 新颖与独特:3分

  • 情感共鸣:5分

  • 引人入胜:7分

  • 现实相关:8分

  • 沉浸感:9分

  • 事实准确性:5分

  • 文化贡献:8分


网站评分

  • 书籍多样性:9分

  • 书籍信息完全性:3分

  • 网站更新速度:5分

  • 使用便利性:5分

  • 书籍清晰度:9分

  • 书籍格式兼容性:9分

  • 是否包含广告:9分

  • 加载速度:4分

  • 安全性:8分

  • 稳定性:3分

  • 搜索功能:4分

  • 下载便捷性:6分


下载点评

  • 格式多(70+)
  • 内容齐全(400+)
  • azw3(117+)
  • 少量广告(606+)
  • pdf(192+)
  • 简单(387+)
  • 赞(512+)
  • 章节完整(598+)
  • 愉快的找书体验(587+)

下载评价

  • 网友 冷***洁: ( 2025-01-08 04:43:23 )

    不错,用着很方便

  • 网友 通***蕊: ( 2025-01-01 21:04:40 )

    五颗星、五颗星,大赞还觉得不错!~~

  • 网友 薛***玉: ( 2025-01-05 18:03:50 )

    就是我想要的!!!

  • 网友 冯***卉: ( 2024-12-28 10:56:52 )

    听说内置一千多万的书籍,不知道真假的

  • 网友 潘***丽: ( 2024-12-19 17:50:40 )

    这里能在线转化,直接选择一款就可以了,用他这个转很方便的

  • 网友 曾***文: ( 2025-01-05 00:20:30 )

    五星好评哦

  • 网友 步***青: ( 2024-12-26 01:32:45 )

    。。。。。好

  • 网友 师***怡: ( 2025-01-02 01:24:47 )

    说的好不如用的好,真心很好。越来越完美

  • 网友 方***旋: ( 2024-12-23 04:20:17 )

    真的很好,里面很多小说都能搜到,但就是收费的太多了

  • 网友 戈***玉: ( 2024-12-20 15:22:18 )

    特别棒

  • 网友 寇***音: ( 2025-01-05 11:45:00 )

    好,真的挺使用的!

  • 网友 郗***兰: ( 2024-12-19 23:42:03 )

    网站体验不错

  • 网友 宫***玉: ( 2024-12-31 21:14:22 )

    我说完了。


随机推荐