Yaoxing Shan
  • 首页
  • 分类
  • 标签
  • 归档
  • 关于
  •   
  •   

Windows via C/C++, 5th Edition - Thread Basics

线程(Thread)描述了进程(Process)中的执行路径,由两部分组成: 一个被操作系统用来管理线程的内核对象。这个内核对象也是系统用来存放关于线程的统计信息的地方。 一个用来维护线程执行代码时所需的所有函数参数和局部变量的线程栈(Thread Stack)。 进程是惰性的,它从不执行任何操作,仅仅是线程的容器。线程总是在某个进程的上下文(context)中创建,并在该进程中度过它们的整个
2022-02-14
My Notes
#Windows #Windows via C/C++

Windows via C/C++, 5th Edition - Jobs

Microsoft Windows 提供了作业内核对象(Job Kernel Object),允许将进程组合在一起,并创建一个“沙盒(sandbox)”来限制进程可以执行的操作。最好将作业对象视为进程的容器。创建包含单个进程的作业也是很有用的,因为您可以对该进程施加各种限制。 如下 StartRestrictedProcess 函数将一个进程放置到一个限制进程执行某些操作的能力的作业中: 1234
2022-02-14
My Notes
#Windows #Windows via C/C++

Windows via C/C++, 5th Edition - Processes

进程(Process)通常被定义为正在运行的程序实例,由两部分组成: 一个被操作系统用来管理进程的内核对象。这个内核对象也是系统用来存放关于进程的统计信息的地方。 一个包含所有可执行文件(executable)或 DLL(动态链接库,Dynamic-Link Library)模块的代码和数据的地址空间。它还包含了动态内存分配,如线程栈和堆的分配。 进程是惰性的。对于要完成任何事情的进程,它必须
2022-02-09
My Notes
#Windows #Windows via C/C++

Windows via C/C++, 5th Edition - Kernel Objects

什么是内核对象?Windows 内核对象(Kernel Object)是一个包含资源维护信息的结构化内存块。系统创建并维护若干类型的内核对象,如访问令牌对象(access token object)。因为内核对象的数据结构只能被内核访问,所以用户程序只能通过调用 Windows 函数来创建和维护这些对象。当调用了会创建内核对象的函数时,函数会返回一个句柄(handle)以标识所创建的对象。 句柄是
2022-02-07
My Notes
#Windows #Windows via C/C++

Windows via C/C++, 5th Edition - Working with Characters and Strings

在 Windows Vista 中,每个 Unicode 字符都使用 UTF-16(Unicode Transformation Format)进行编码。UTF-16 将每个字符编码为 16 位,当 16 位不足以表示所有字符时,其将使用代理(surrogate),代理是一种使用 32 位来表示单个字符的方法。 从 Windows NT 起,所有 Windows 版本都是使用 Unicode 从头
2022-01-28
My Notes
#Windows #Windows via C/C++

Windows via C/C++, 5th Edition - Error Handling

调用 Windows 函数时,它会检查传参的合法性然后执行任务。如果传参非法或执行失败,那么系统将返回一个值以指明原因。下表列出大多数 Windows 函数的返回值的数据类型: 数据类型 说明 VOID 表明函数不可能发生错误。 BOOL 失败时返回 0;否则返回非零值。避免测试这种函数的返回值是否为 TRUE,最好测试其是否为 FALSE。 HANDLE 失败时通常会返回 N
2022-01-28
My Notes
#Windows #Windows via C/C++

解决 Qt5 显示乱码问题

对于在 Windows 上进行 Qt 开发的小伙伴来说,乱码可能是一个较为头疼的问题。 Qt for Windows 支持两种编译器:MSVC 和 MinGW-GCC。本文将介绍使用这两种编译器而出现乱码问题的解决办法。如果在 Linux 上也出现了乱码,则可以参考 MinGW-GCC 的做法。 MinGW-GCC如果使用的编译器是 MinGW-GCC,一般来说不会遇到乱码问题。出现乱码问题很大可
2021-05-09
Qt
#Qt5 #MSVC #Windows

Ubuntu 下移除不需要的内核

在 Ubuntu Linux 下如果经常更新内核,那么磁盘中可能会存留大量的旧内核。由于这些旧内核几乎不会再被使用,所以我们可以手动清理它们以腾出更多的磁盘空间 注:移除内核具有一定的风险,执行这些操作的前提是你明白自己在干什么!!! 查看当前内核信息在移除旧内核前,我们应该查看当前正在使用的内核: 1uname -r 该命令将输出如下相似的内容: 15.4.0-72-generic 查看
2021-04-25
Ubuntu
#Ubuntu #Linux

cannot find -lGL

在 Ubuntu 18.04 LTS 上编译 Qt 库时发生了错误,提示如下: 12/usr/bin/ld: cannot find -lGLcollect2: error: ld returned 1 exit status 这是由于缺少了 OpenGL 库。Mesa 3D 是一个开源的 OpenGL 实现,可以通过安装它来解决问题。 在 Ubuntu 上可以执行以下命令来安装: 1sudo
2021-03-25
Qt
#Qt5 #ld #Ubuntu

Git 代理

由于国内特殊的原因,我们访问 GitHub 的速度十分缓慢。尽管如此,我们仍然需要经常地访问它,毕竟它是全球最活跃的开源代码托管站。 Git 支持使用 ssh 和 http(s) 协议进行传输。因此我们可以对其使用代理(梯子)来提高克隆 GitHub 仓库的速度。在默认情况下,国内克隆 GitHub 上的仓库的速度可能只有 15 ~ 30 KB/s,而使用代理则可以达到 1 ~ 10 M
2021-03-17
Git
#Git
123

搜索

Hexo Fluid
总访问量 次 总访客数 人