- 博客(74)
- 资源 (62)
- 收藏
- 关注
原创 使用 Intel OneAPI C++ For Windows遇到的问题
在使用 Intel OneAPI C++ For Windows 构建静态库时,
2025-05-06 06:51:05
126
原创 在 Windows 编程中使用 `DWORD` ,但是不包含 `Windows.h` 的方法
包含 就可以。参考网址:Windows Data Types
2025-05-04 19:05:13
275
原创 没有看明白的微软 UCRT 文档
includes one more character in the output because it doesn’t null-terminate the buffer.是不是写错了,应该是。
2025-05-04 15:40:33
266
转载 doxygen 大纲注释写到头文件,详细注释写到源文件
参考网址: https://www.doxygen.nl/manual/docblocks.html#cppblock。
2025-04-24 06:37:13
25
原创 为什么 upp 项目 dirwather 的头文件 watcher.h 没有包含 <string> 头文件
2025年04月23日 星期三 11时37分34秒。头文件,也能编译过去?的头文件 watcher.h 没有包含。为什么 upp 项目。
2025-04-23 11:42:02
130
翻译 库与框架的区别
框架是一组相互关联的库,旨在限制您的设计选择。CopperSpice中的类类似于QString(类似于std::string)在低级操作,编写方法是为了修改或查询给定的数据。在C++中,STL是一个由C++标准委员会维护的库,并不经常更新。库的基本定义本质上是您从应用程序调用的一组类或函数。框架的缺点是应用程序并不总是适合给定的框架模型。名开发人员,您可能不需要使用框架中的每个库,但由于它们的依赖关系,您最终可能需要包含库。随着我们从框架概念转向更小的独立库,CopperSpice正在向一组库过渡。
2025-04-20 08:05:37
23
转载 如何使用代理服务器连接到 Epic Games启动程序
最近这几天, Epic Games Launcher 自动退出了登录,在尝试再次登录时,提示“不能连接”。:如果访问 Epic Games启动器程序中的 设置 界面,您就能看到, 使用代理 部分已配置,现在使用的是您指定的代理。如果您无法从 Epic Games启动程序中访问设置菜单, 请按下列步骤操作,使用 Epic Games启动程序。文件,设置 使用代理 选项,无需打开 Epic Games 启动程序。:在 使用代理 中设置好自己的代理后, 请务必将。文件,您可以手动创建。下面是设置代理的方法。
2025-04-14 09:23:43
79
原创 编译 OpenCV 时,cmake 找到 TBB 的方法
cmake 是从上面的注册表里找到的 TBB 安装路径。中的 find_package 中,添加参数。,这就是我的电脑上 TBB 的安装路径。,cmake 就找不到 TBB 了。如果把 OpenCV 源码包中的。
2025-04-12 16:21:38
303
原创 Python Flask 开发用于访问数据库的 REST API
还有其他解决方案可以实现同样的目的,但出于简单的原因,我们选择了 此选项。对于 在本代码示例中,我们没有添加错误和异常处理,以保持代码简洁,便于讨论。在前面的代码片段中,我们首先初始化了 Flask 应用程序和数据库实例。类实现的方法,我们在一条语句中返回状态代码和对象本身。这个 API 实例是开发其余 API 应用程序的关键,我们将使用它。在示例 API 应用程序的后面两行中,我们将 URL 映射到了资源对象。模型对象,这与我们前面写过的代码中的操作相同,只是我们将添加一个。接下来,我们创建两个。
2025-03-11 10:32:17
605
原创 Python Flask 构建REST API 简介
REST 或 ReST 是 Representational State Transfer(表征状态传输)的首字母缩写,是客户端机器请求远程机器上存在的资源信息的一种架构。API 是应用编程接口(Application Programming Interface)的缩写,是一套与运行在不同机器上的应用软件进行交互的规则和协议。不同软件实体之间的交互并非新要求。在过去的几十年中,已经提出和发明了许多技术,以实现软件级交互的无缝和便捷。
2025-03-11 09:43:57
689
原创 Python Flask 在网页应用程序中处理错误和异常
在我们所有的代码示例中,我们没有注意如何处理用户在浏览器中输入错误的URL或向我们的应用程序发送错误的参数集的情况。例如,从400到499的错误代码表示客户端请求的错误,而从500到599的错误代码则表示服务器在执行请求时出现问题。如果我们想用自定义行为或自定义消息处理这些错误或异常,我们可以向 Flask 应用程序注册我们的处理程序。请注意,错误处理程序是 Flask 中的一个函数,仅在发生错误时触发,我们可以将特定的错误或通用异常与我们的处理程序相关联。类的子类,该类是 Flask 库的一部分。
2025-03-10 19:30:29
1122
原创 Python Flask 和数据库系统交互
全栈网页应用程序需要结构化数据的持久性,因此使用数据库的知识和经验是网页开发的先决条件。为了说明SQLAlchemy库在我们的网页应用程序中的使用,我们将创建一个简单的应用程序来添加、列出和删除数据库表中的学生对象。等ORM库的美妙之处在于,我们可以在 Python 中将数据库模式定义为 Python 类,在 ORM 术语中称为模型。要删除学生,首先,我们使用学生 ID 查询确切的学生实例。我们使用重定向到此 URL 的原因是,我们想在添加新学生后返回最新的学生列表,并重用我们已经实现的。
2025-03-10 18:23:26
1294
原创 Python Flask 从 HTTP 请求中解包参数
网页应用程序与网站不同,因为它们与用户交互,如果不在客户端和服务器之间交换数据,这是不可能的。在这篇文章中,我们将讨论如何从请求中提取数据。根据所使用的HTTP方法的类型,我们将采用不同的方法。下面是一个包含三种不同路由的示例代码,用于覆盖上述三种请求类型。我们渲染一个 Jinja 模板(为了测试这些场景,我们建议使用。实用程序,特别是对于。
2025-03-09 16:44:58
402
原创 Python Flask 渲染静态程动态页面
推荐的方法是使用 Jinja2 等模板引擎。Flask 附带了 Jinja2 库,因此不需要安装额外的库,也不需要添加任何额外的配置来设置 Jinja2。对网页应用程序来说,静态内容是重要的,因为它们包括 CSS 和 JavaScript 文件。我们不会详细介绍 Jinja2 模板,但我们强烈建议您通过他们的在线平台熟悉Jinja2的模板。动态内容可以使用 Python 创建,但它很乏味,需要在Python中维护这样的代码。目录,并且重定向客户端到静态文件位置,Flask 可以支持静态内容。
2025-03-09 13:44:40
676
原创 Python Flask 使用不同的 HTTP 方法类型处理请求
这种访问资源的方案是流行的,因为它的简单。在 URL 中,查询字符串的数据是可见的,这意味着我们不能在查询字符串中发送敏感信息,比如用户名和密码。HTTP 是基于客户端和服务端的请求-回应模型的。客户端(例如,网页服务器)可以发送不同的动词,或更合适的,调用方法来区别对服务器请求的类型。在讨论这两个方法之前,理解 HTTP 的两个组件是非常重要的,也就是 HTTP 请求和 HTTP 回应。方法用来发送请求以获取特定资源,特定资源是在 URL 中标识出来的,并且可以选择将查询字符串添加为 URL 的一部分。
2025-03-09 12:53:14
674
原创 Flask 框架简介
Flask 是一个 Python 微型网页开发框架。微型指明了 Flash 的核心是轻量级的,但是可以灵活扩展。下面的简单的例子要和一个数据库系统交互。Django附带了与最常见的数据库交互所需的库。另一方面,Flask允许根据数据库类型或集成方法使用扩展来实现相同的目标。Flask的另一个理念是使用约定而不是配置,这意味着如果我们遵循网页开发的标准约定,我们就必须减少配置。这使得Flask成为初学者学习Python 网页开发的最佳选择。
2025-03-08 21:54:20
1324
原创 Python 多进程间的同步
进程间的同步确保了两个或多个进程不会同时访问同一资源或程序代码,也就是临界区。在不同的进程之间发生竞态条件的机会并不高,但是它仍然有可能,尤期是在使用共享内存或访问同一资源时。这些情景可以通过合适的带有内建同步机制的对象或。对象绑定到每个进程,一起被绑定的还有一个会被分发到每个进程函数的列表。)的使用,它们是多进程安全的。在下面的示例中,我们将演示使用。对象来确保同一时间只有一个进程使用控制台输出。如果我们不使用锁,不同进程的输出会混合在一起。对象避免,和我们在多线程编程时类似。对象传递给所有的进程。
2025-03-05 16:02:18
340
原创 在不同的 Python 进程中交换 Python 对象
在前面的节中,我们讲解了怎么在进程中共享数据,这是通过使用一个新的进程(服务进程)或外部内存(共享内存)实现的。中的数据由前一个进程设置,并且对后面的新进程可见。这是一种方便的交换数据的方式,它没有共享内存和服务进程的复杂性。这就是为什么多进程编程时优先选择队列,因为队列提供了合适的进程间同步机制。我们给这两个函数(或进程)提供了一个管道的一个连接。是进程安全的,不需要任何附加的保护。下面的代码演示了用多进程。对象,它几乎和我们在多线程编程中用到的同步队列对象(在上面的示例中,我们创建了一个标准的。
2025-03-04 13:41:10
1082
原创 Python 中使用 Server 进程共享数据
在这种场景下,一个服务进程(Server Process)随着主程序一起启动。这个新的进程用来创建和管理新的子进程。用服务器进程共享数据相比较标准的共享内存提供了更大的灵活性,因为他支持大量不同类型的对象类型。然后,相比较标准的共享内存,它的性能比较低。创建一个服务运进程。子进程由服务进程创建。服务进程中的共享数据对所有进程可见,包括父进程。主进程是所有其它进程的父进程。在这个例子中,我们会创建 3 个子进程:两个用来向。新进程请求被执行的同时,父进程就用。对象传递给了不同的子进程,这些子进程会在。
2025-03-04 08:35:40
706
原创 Python 多进程编程
的全局解释锁(GIL,Global Interpreter Lock)的限制,可以实现并行执行(高层看起来是并行,底层依然是并发)。方法)创建进程、给每个进程设置一个函数,跨进程分发输入参数。多线程编程的复杂之处在于,要仔细地使用锁,来保证数据的完整。,多线程不是唯一的选择,还有其它并发或并行方案可以使用。相关的任务中,取得好的性能。接下来,我们首先讲解一下创建进程的基本知识,后续会讲解进程间通信。在现实中,多进程编程,是。对象,可以生成一个进程,接下来,可以使用。可见,创建进程的代码,是简单明了的。
2025-03-03 08:26:06
366
原创 Python 使用同步队列
队列在多线程程序中,当不同的线程需要安全地交换信息时非常有用。同步队列的好处是,他们带有所有必需的锁机制,不再需要额外的锁。当使用一个队列保存被处理的数据时,这是一种被推荐的方法。在下面的代码中,我们创建了一个。队列,队列里存放着桩任务。为了处理队列中的任务,我们通过继承。类,创建了一个定制类,这是创建线程的另一种方式。方法是线程类的可执行部分。方法从队列中获取一个任务后,就用调用。非常需要注意的是,我们没有在线程上调用。方法,来表明任务已经处理完毕。方法中,要求调用父类的。在线程中,每一个调用。
2025-03-02 12:07:23
346
原创 Python 线程同步
为了讲解什么是竞态条件,我们将实现一个包含两个线程的简单的程序,每个线程都会给一个共享变量增加值一百万次。在速度比较低的 CPU 上,用一个小一点的数,也有可能发现竞态条件。访问共享变量并且每次给它加 1 的代码在临界区里,两个线程访问这个变量时,没有做任何保护。锁被重置为非锁状态后,如果有很多线程在等待获取锁,那么也只有一个线程可以获得锁。多个线程在同一时间记问临界区,就会有可能同时尝试访问或改变数据,这有可能会导致不可预知的后果。的线程会被阻塞,直到另外的拥有锁的线程调用。然而,实际上,每个线程都给。
2025-03-02 11:24:06
1014
原创 Python 的守护线程
然而,有时候,我们需要在后台运行一些线程,不阻止主程序结束运行。只要主程序(包含非守护线程)在运行,守护线程就会一直处于活动状态。一旦非守护线程退出,就可以终止守护线程。但是我们没有看到守护线程输出消息。这是因为守护线程在非守护线程结束的同一时间,就被终止了。如果一个线程被设置为守护线程,我们在启动它后,就可以把它忘了。在调用它的程序退出后,守护线程会被自动终止。在某些情况下,如果一个线程在执行过程中死亡而不会丢失或损坏任何数据,那么使用守护线程就很受欢迎。下面的代码同时演示了守护线程和非守护线程。
2025-03-01 20:54:58
346
原创 Python 中的线程模块
接下来,我们会在下面的代码中,创建三个线程,以演示如何建线程,启动它,并且等待它执行完毕。模块是一个标准模块,提供了简单易用的方法为程序构建多线程。在幕后,该模块使用较低级的。线程可以被赋予一个名称,这个名称可以在创建线程时使用 name 参数设置。为了让主程序或线程等待新创建的线程运行结束,我们需要使用。模块,在 Python 早期版本中,该模块是多线程的流行选择。类的对象,它可以接受一个函数作为。属性,传递给这个函数的参数作为。类的对象后,我们需要使用。创建线程时,先创建一个。方法的线程执行完毕。
2025-03-01 20:23:53
199
原创 学习 DataFrame 对象的高级技巧
例如,我们可以使用该方法将一个数字替换为另一个数字,或将一个字符串替换为另一个字符串,或者替换任何与正则表达式匹配的内容。在本代码示例中,我们将使用与之前代码示例中相同的数据帧对象。在本节中,我们将研究数据帧对象上的下一级别操作,以进行数据评估和转换。在我们的代码示例中,首先,我们将删除尾随的空格、点和逗号。在这个语句中,前一个字典用来指名列名字和被替换的值,第二个字典用来指明同一个列和替换值。有一种简单的方法,可以使用。数据帧象中搜索行,我们可以编写一个传统的过滤器,也可以在包含以下内容的列上使用。
2025-02-28 19:20:50
1222
原创 Python 的 pandas DataFrame 简介
pandas是一个开源的 Python 库,它提供了高性能的数据操控,使得数据分析变得快速和简单。典型的pandas用途有重塑(reshape)、排序(sort)、切片(slice)、聚合(aggregate)和合并(merge)数据。pandas库的底层是NumPy库。NumPy是用来处理数组的,它的性能比传统的 Python 列表,高得多,因为它把数据存放在一块连续的内存里。pandasSeries(系列):这是一个类似于一维数组的对象,包含一个数据数组和一个数据标签数组。数据标签数组被称作index。
2025-02-28 15:34:15
960
原创 Python 中常见的数据结构之二推导式
下面的几个例子将有助于理解推导式的概念,其中主要展示了怎么使用列表推式。请看例子,新创建的列表中的每个元素,是原来列表中相应表素加。字典也可以通过推导式创建。字典推导式和列表推导式类似,是一种从一个字典中创建另一个字典的方案。这种方案允许在原来的字典中选择满足条件的元素,创建新字典。请看下面的代码,我们从。集合推导式的语法,和列表推导式似,只是列现用方括号,集合用花括号,而已。可以看到,我们把条件添加到了推导式的结尾处。推导式是一种从已存在的序列中快速构建。使用推导式,可以显著地减少代码。
2025-01-04 21:58:41
570
原创 Python 中常见的数据结构之一嵌套字典
通过把由逗号分隔的字典,放入到花括号里,可以定义或创建一个嵌套字典。下面的代码创建了一个管理学生信息的嵌套字典。每个学生记录都是另一个字典,它带有两个字段,名字和年龄,由学号dict1 = {100: {'姓名': '张三', '年龄': 24},101: {'姓名': '李四', '年龄': 23},102: {'姓名': '王五', '年龄': 22}}
2025-01-04 20:49:43
567
原创 我用实力让 ChatGPT 证明了我比别人笨
它却像一个调皮的孩子,或者像一个高深莫测的长者,我问什么,它答什么,我不问,它不说,合着,这个世界是由我主导吗?是,我是人,你是机器,所有的决定都要由我来做。我又一次感到,我用自己的实力,让 ChatGPT 证明了,我比别人笨。再加上我笨笨的脑子,你骗了我,我都不知道!早期的时候,我待 ChatGPT 如初恋,那种感觉,就是,我有了问题,也要好好地想想,组织一下语言,然后表达出来,生怕惹它生气。再后来,我问它我的专业相关的一些问题,我很任性地问了一些根本就没有答案的问题,它则正儿八经地我回复以胡言乱语。
2024-12-31 09:52:51
190
原创 在 VC++ 里最大化并且前置窗口
在 Windows 系统中,如果需要通过编程的方式,前置显示另一个进程的某个窗口,你会发现,你遇到了一个麻烦。至少你会发现,仅仅使用。,Window 10 和 Windows Server 2019 上测试通过。:缺少的头文件,自己可以根据提示添加上。这可能是你找遍全网才能找到的方案。
2024-12-30 22:47:06
376
原创 Python 使用装饰器 decorator 修改函数行为
在 Python 中,装饰器是一种特殊的高阶函数,它使开发者能够在现有函数(或方法)中添加新功能,而无需添加或更改函数中的任何内容。标准装饰器是一个函数,它接受一个函数作为实参,返回一个内部函数,执行装饰工作。在一个函数上,可以使用多个装饰器,这可以通过链接装饰器实现。值得一提的是,装饰器在简化代码和以简洁的方式添加行为方面非常有用,但其代价是在执行过程中产生额外的开销。我们在调试程序的时候,需要更详细的函数调用信息,然而,使用了装饰器后,当我们在被装饰的函数上调用。装饰器,它返回了一个内部函数。
2024-12-30 16:42:58
1110
Windows-md5-C++-消除重复文件
2025-03-09
XCleaner重复文件查找和清理工具
2016-10-13
QT自定义精美换肤界面 (转)
2016-03-28
QT自定义精美换肤界面(转)
2016-03-28
borland pascal 7.0
2014-06-25
TurboPascal全集1.0-8.0
2014-06-25
borland c++ 合集卷3(共3卷)
2014-06-25
borland c++ 合集卷2(共3卷)
2014-06-25
borland c++ 合集卷1(共3卷)
2014-06-25
Borland [Turbo Vision][Turbo Debugger][Turbo Tutor]
2014-06-25
discrete mathematics with applications Susanna S. Epp
2014-05-11
Linux 下编译 gcc 的方法
2011-12-26
基于md5和sha1的以批处理方式实现的目录比较工具
2009-04-14
vc++ 2008 express 编译 gvim 的方法
2008-12-29
可以使用任何字体的 gvim-7.2.69-p1 for windows 完整压缩包
2008-12-18
可以使用任何字体的 gvim-7.2.49-p1 for windows
2008-11-22
可以使用任何字体的 gvim-7.2.49-p1 for windows
2008-11-22
可以使用任何字体的gvim-7.2.6-p2-for-windows
2008-09-02
可以使用任何字体的gvim-7.2.6-p1-for-windows
2008-08-25
gvim-7.2.5-p1-for-windows
2008-08-25
gvim-7.2.2-p1-for-windows
2008-08-19
gvim-7.2-p2-for-windows
2008-08-19
gvim-7.2-p1-for-windows
2008-08-19
我的gvim个性设置
2008-06-11
gvim 7.1.314 for windows
2008-06-11
gvim-7.1.305-p1 for windows
2008-06-03
找出局域网内计算机IP和MAC
2008-06-03
gvim-win32-7.1.305-p1
2008-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人