- 博客(746)
- 资源 (22)
- 收藏
- 关注
原创 Windows11中使用VS2022编译运行libevent网络库
本文介绍了在Windows11系统中使用VS2022和CMake编译运行libevent事件通知网络库的完整过程。主要内容包括:1) libevent库的功能简介;2) 从GitHub获取源代码的方法;3) 使用CMake配置VS2022工程的具体命令;4) 编译过程的关键步骤和注意事项;5) 在VS2022中运行hello-world示例项目。文章详细说明了Visual Studio版本与CMake生成器参数的对应关系,并展示了编译后的目录结构和项目文件。
2025-12-13 21:55:56
409
原创 macOS中使用cJSON解析库解析JSON
本文介绍了在macOS系统中使用cJSON解析库的两种方法。cJSON是一个轻量级的ANSI C JSON解析器,采用MIT开源协议。第一种方法是通过下载cJSON源代码,使用CMake编译生成库文件后引入项目;第二种是直接拷贝cJSON.h和cJSON.c文件到项目中。文章详细说明了第一种方法的步骤:安装pkg-config、下载源码、使用CMake编译安装,并展示了编译过程的输出日志。cJSON具有超轻便、可移植和单文件特点,适合在C++项目中处理JSON数据。
2025-12-10 21:34:08
833
原创 完整的后端课程 | NodeJS、ExpressJS、JWT、Prisma、PostgreSQL
这篇文章介绍了一个完整的后端开发课程,使用NodeJS、ExpressJS、JWT、Prisma和PostgreSQL技术栈构建RESTful API。课程内容包括用户认证系统、电影管理API和观看列表功能,涵盖CRUD操作、JWT认证、数据库管理等现代后端开发实践。项目采用Prisma ORM v6(注意升级到v7会有破坏性变更),提供完整的API端点、数据库模式和部署指南。适合想掌握后端开发、API设计和认证实现的开发者。课程视频和源代码均可在提供的链接中获取。
2025-12-06 22:56:56
1159
原创 C++中编写UT单元测试用例时如何mock非虚函数?
摘要: 在C++单元测试中,使用GoogleTest的GMock通常只能mock虚函数。针对非虚函数的mock,官方推荐通过模板参数实现依赖注入。此外,开源项目cpp-stub提供了更灵活的解决方案,支持对各类函数(包括非虚成员函数、静态函数、构造函数等)进行mock。该工具通过获取函数地址并替换为桩函数实现mock,支持多种平台和编译器,但无法mock纯虚函数、lambda和部分系统调用。使用时需注意编译选项优化和代码覆盖率收集方法。
2025-11-25 22:11:40
1047
原创 C++ 11 中的move赋值运算符
C++11中的移动赋值运算符通过转移而非复制资源提升性能。文章展示了标准库vector和自定义类的移动赋值实现方式,重点说明了其避免复制、减少内存占用的优势。通过MyString类的例子,详细演示了移动构造函数和移动赋值运算符的实现方法,包括资源所有权的转移和原对象状态的清空。最后通过示例程序验证了移动语义的高效性,输出结果显示移动后的源对象变为空状态,而目标对象成功接管资源。
2025-11-14 23:38:44
480
原创 Java实现快速排序算法
本文介绍了Java实现的快速排序算法,这是一种基于分治思想的高效排序方法。算法通过选取基准值(pivot)将数组分为三部分,并递归排序子数组。文章提供了完整的Java代码实现,包括分区(partition)和交换(swap)操作,并对随机生成的数组进行排序演示。快速排序的平均时间复杂度为O(nlogn),适合大规模数据排序。示例展示了排序前(无序)和排序后(升序)的数组对比结果。
2025-11-06 23:38:23
214
原创 Typescript语言中通过get请求获取api.open-meteo.com网站的天气数据
摘要:本文介绍了如何使用TypeScript通过GET请求获取api.open-meteo.com网站的天气数据。示例代码使用node-fetch模块发送HTTP请求,包含设置经纬度参数、处理响应数据和错误捕获。文章详细说明了项目初始化、代码编译和运行步骤,并展示了预期的JSON格式输出结果。该方法可为TypeScript开发者提供一个简单有效的气象API调用解决方案,适用于Node.js环境。
2025-11-02 14:20:21
1122
原创 Go语言中通过get请求获取api.open-meteo.com网站的天气数据
本文介绍了使用Go语言通过HTTP GET请求获取api.open-meteo.com网站天气数据的方法。代码示例展示了如何构建请求URL、发送GET请求、处理响应状态码、读取响应数据并解析JSON格式的天气信息。文章还提供了错误处理机制、运行步骤和注意事项,并演示了如何访问具体的天气字段数据。该实现仅使用Go标准库的net/http和encoding/json包,无需额外依赖,适合快速获取天气API数据的基本需求。
2025-11-01 22:13:26
1314
原创 C#中通过get请求获取api.open-meteo.com网站的天气数据
本文介绍了使用C#发送HTTP GET请求获取api.open-meteo.com天气数据的方法。示例代码展示了如何通过HttpClient类异步发送请求,包含查询参数(latitude,longitude等)的设置和响应处理。文章提供了完整的代码示例、运行步骤和预期输出结果,并提示了JSON解析的扩展方案。相比之前发布的C++、Node.js、Java和Python实现版本,本文补充了C#语言的实现方案,为开发者提供了跨语言获取天气数据的参考。
2025-11-01 22:08:14
352
原创 Python中通过get请求获取api.open-meteo.com网站的天气数据
本文介绍了如何使用 Python 的 requests 模块通过 GET 请求获取 api.open-meteo.com 网站的天气数据。代码示例演示了如何构建带参数的请求(包含纬度、经度等),处理200响应及异常情况,并解析返回的JSON格式天气数据(如温度、风速等)。文章还提供了安装依赖、运行脚本的具体步骤以及示例输出,适用于需要获取天气数据的Python开发者。
2025-11-01 21:42:43
807
原创 使用Java通过get请求获取api.open-meteo.com网站的天气数据
本文介绍了使用Java发送HTTP GET请求获取api.open-meteo.com网站天气数据的方法。示例代码展示了如何通过HttpURLConnection类实现GET请求,包括URL构建、请求发送、响应处理和异常捕获。文章还提供了代码编译运行步骤、示例输出结果,并提及了JSON解析库的使用建议。对比作者先前用C++和Node.js实现的同功能文章,本文完整呈现了Java版本的具体实现过程,注意事项包括网络连接检查和POST请求的扩展方法。
2025-11-01 21:15:56
433
原创 Nodejs通过get请求获取api.open-meteo.com网站的天气数据
本文介绍了使用Node.js的http模块获取天气数据的方法。通过GET和POST请求调用api.open-meteo.com天气API,演示了请求配置、数据处理和错误处理的具体实现。GET请求通过URL参数传递经纬度信息获取天气数据;POST请求则通过请求体发送JSON数据。文中提供了完整的代码示例,并指出当API不支持POST请求时会返回错误信息,同时建议对复杂HTTP需求可使用axios等高级库。运行示例代码后,GET请求成功返回包含温度、风速等详情的天气数据。
2025-11-01 20:43:00
582
原创 C++中使用cpp-httplib和nlohmann_json库实现http请求获取天气数据
本文介绍了如何在C++中使用cpp-httplib和nlohmann_json库实现HTTP请求获取天气数据。cpp-httplib是一个轻量级的HTTP/HTTPS客户端/服务端库,而nlohmann_json是流行的JSON解析库。文章展示了如何通过这两个库向api.open-meteo.com发送请求获取天气预报数据,并解析返回的JSON格式响应,提取当前温度信息。示例代码演示了同步和异步两种请求方式,最终输出包含温度值和单位的天气信息。这种方法为C++开发者提供了简单高效的HTTP通信解决方案。
2025-10-31 22:39:03
741
原创 makefile教程
本文推荐了多个Makefile学习资源,包括权威的GNU Make Manual官方手册(提供PDF下载)、廖雪峰入门教程(含PDF和GitHub源码)以及通过示例教学的Makefile Tutorial by Example。此外还列举了其他优质学习资源,如GNU官网文档、大学教程和GitHub代码等,涵盖从基础到进阶的各类Makefile学习资料。这些资源适合不同层次的学习者,是掌握Makefile工具的重要参考。
2025-10-11 22:23:55
371
原创 Visual Studio 2026 IDE发布了
微软发布Visual Studio 2026 IDE,提供Insiders预览版下载。该版本是继2022版后的重大更新,包含多个新特性改进。开发者可通过官网链接下载社区版、专业版和企业版,或观看YouTube发布派对视频了解详情。官方博客和发行说明提供了版本更新内容参考,支持开发者抢先体验最新功能。
2025-09-27 15:01:50
1691
2
原创 C++/C#游戏开发引擎和2D/3D图形库
本文介绍了C++/C#游戏开发常用的引擎和图形库。主流游戏引擎包括Cocos2d-x、Unity和Unreal Engine等跨平台工具。图形库部分涵盖了Dear ImGui、Godot、raylib和Sokol等轻量级方案,以及OpenGL、Vulkan和DirectX三大3D图形API。这些开源项目提供了从2D到3D、从移动端到PC端的完整游戏开发解决方案,适合不同需求的开发者使用。文中提供了各项目的GitHub链接和官网地址,方便读者深入了解。
2025-09-27 14:22:41
4297
原创 使用C++编写的一款射击五彩敌人的游戏
《Spectrum光能射击游戏开发与运行指南》摘要 Spectrum是一款基于C++开发的射击游戏,灵感来源于TheCherno的YouTube教程。玩家通过WASD移动、鼠标左键射击,击败五彩敌人收集光能并在商店升级装备。游戏采用raylib引擎开发,包含精美的UI和特效。文章详细介绍了在Windows11环境下使用CMake和VS2022编译项目的完整流程,包括解决资源加载问题的技巧(需将assets目录复制到可执行文件同级目录)。项目通过GitHub开源,附带构建指令和游戏截图展示,适合C++游戏开发
2025-09-21 21:36:49
1184
1
原创 C++编写的经典贪吃蛇游戏
C++贪吃蛇游戏项目摘要 这是一个使用C++和Raylib图形库开发的经典贪吃蛇游戏项目,采用现代软件开发实践构建。项目特点包括: 核心功能: 支持WASD键控制 移动的食物增加游戏难度 3个不同布局的关卡 使用Raylib处理渲染和UI 采用Catch2进行单元测试 技术架构: 应用OOP设计模式(Command, GameLoop) 逻辑层与渲染层分离 清晰的目录结构 CMake构建自动化 使用Doxygen文档化 Clang格式化代码 开发流程: 采用Jira进行看板项目管理 GitHub分支工作流
2025-09-21 18:41:50
1249
原创 Ubuntu22.04下编译googletest源代码生成.so动态库
在Ubuntu22.04系统中,通过设置CMake选项-DBUILD_SHARED_LIBS=ON可让googletest(gtest)生成.so动态库而非默认的静态库。具体步骤为:1)下载并解压googletest-1.17.0源码;2)在构建目录执行cmake -DBUILD_SHARED_LIBS=ON..命令;3)运行make和make install。完成后将在lib目录生成libgtest.so等动态库文件。该参数是生成动态库的关键配置项。
2025-09-03 23:03:17
381
原创 Ubuntu22.04中使用cmake安装abseil-cpp库
Abseil是Google开源的C++基础库,包含增强标准库功能的实用工具,被广泛应用于gRPC、Protobuf和TensorFlow等项目中。该项目支持Bazel和CMake构建系统,提供了算法、容器、调试、哈希、同步等20多个功能模块。文档详细介绍了两种构建方式,特别是通过CMake可生成静态库或动态库(通过设置BUILD_SHARED_LIBS选项)。Abseil采用Apache 2.0许可证,建议用户实时更新主分支或使用长期支持版本。Ubuntu 22.04环境下可通过指定C++17标准和测试选项
2025-09-03 21:47:37
1354
原创 使用AssemblyAI将音频数据转换成文本
摘要:本文介绍了如何使用AssemblyAI的API将音频文件转换为文本。首先需要注册账号获取API Key,然后提供了Python、JavaScript、PHP等多种语言的代码示例来调用其语音转文本服务。示例中展示了如何上传本地或远程音频文件,并通过轮询方式获取转换结果。虽然官方未提供Java示例,但其他语言的实现方式清晰展示了API的基本调用流程和参数设置。
2025-08-03 19:25:28
1193
原创 准备OpenHarmony开发环境
本文介绍了搭建OpenHarmony开发环境的配置方法。由于多数开发板源码不支持在Windows环境下编译,建议使用Ubuntu18.04及以上版本作为编译环境,而烧录操作则在Windows10 64位系统上进行。文章详细说明了通过Samba服务器实现Windows与Ubuntu环境文件共享的步骤,包括配置Samba服务器、设置共享目录、添加访问用户,以及在Windows中映射网络驱动器的方法。此外,还提到可通过Visual Studio Code的Remote-SSH插件远程访问Ubuntu环境中的源代码
2025-08-01 21:28:44
847
原创 Ubuntu22.04中下载OpenHarmony源代码
Ubuntu22.04获取OpenHarmony源码指南 本文档详细介绍了在Ubuntu22.04系统中获取OpenHarmony开源操作系统代码的四种方法: 从码云仓库获取:适用于开发者参与贡献或学习源码,需注册gitee账号并配置git环境,通过repo工具下载最新代码。 从DevEco Marketplace获取:适合快速开发初学者,可下载定制化发行版,需先安装Node.js和hpm-cli工具。 从镜像站点获取:提供稳定版本下载,适合需要特定LTS版本的用户,可直接获取压缩包文件。 从GitHub仓
2025-08-01 20:41:35
1106
原创 Ubuntu22.04中搭建GN编译环境
本文介绍了在Ubuntu22.04系统中搭建GN+Ninja编译环境的方法。首先说明GN作为元构建系统与Ninja构建系统的关系,以及OpenHarmony中GN+Ninja的应用。具体步骤包括:1)通过apt安装Ninja 1.11.1版本;2)安装支持C++17特性的clang编译器,推荐使用clang-16或更高版本;3)简要提及了从源码编译Ninja的方法。该环境搭建为后续使用GN+Ninja进行项目构建奠定了基础,特别是对于OpenHarmony开发尤为重要。
2025-07-30 21:53:54
821
原创 IDEA安装Key Promoter X插件记录快捷键使用频率提高生产率
摘要:IDEA的Key Promoter X插件能记录快捷键使用频率,帮助用户提高开发效率。安装后,每当用户通过菜单操作而非快捷键执行命令时,插件会弹出提示框显示对应快捷键及未使用次数。插件还提供统计界面,直观展示高频快捷键,便于用户重点记忆常用快捷键,逐步减少菜单操作,提升工作效率。该工具特别适合需要优化工作流、提高编码速度的开发人员。
2025-07-27 20:10:18
453
原创 OpenHarmony部件化编译最佳实践
本文介绍了OpenHarmony部件化编译的最佳实践方法,主要包括五个方面:1) 通过feature配置实现部件功能裁剪,详细说明了产品配置feature和部件开发使用feature的方法;2) 判断当前产品是否包含依赖部件的方式;3) inner_kits模块的裁剪处理策略;4) napi模块的统一裁剪方法;5) 部件与产品的系统能力配置方法。文章提供了详细的配置示例和使用说明,帮助开发者实现OpenHarmony部件的差异化编译和功能裁剪,支持不同形态产品的组装需求。
2025-07-27 08:42:44
969
原创 Linux中使用du命令如何查看一个目录占用多少GB存储空间
在Linux中,使用du命令可以查看目录占用的存储空间。要查看GB单位的空间占用,推荐使用命令:du -sh --block-size=1G /目录路径,其中-s显示总计,-h以易读格式输出。若只需数字结果,可配合awk命令:du -s --block-size=1G /目录路径 | awk '{print $1 " GB"}'。例如查看OpenHarmony_Code目录,输出显示"70 GB"。该命令能快速获取大目录的存储占用情况。
2025-07-27 07:55:01
295
原创 Ubuntu22.04中生成gitee码云的ssh-key并添加到gitee网站上
在Ubuntu 22.04中为Gitee生成SSH密钥的操作步骤:首先使用ssh-keygen命令生成密钥对(推荐ed25519算法),将默认生成的公钥内容复制;然后登录Gitee网站,在账户设置的SSH公钥页面添加新公钥;最后通过ssh -T git@gitee.com测试连接。文中提供了详细的命令示例和注意事项,包括密钥类型选择、免密设置建议等,帮助用户快速完成SSH密钥配置。
2025-07-27 07:41:26
663
原创 Ubuntu22.04提示找不到python命令的解决方案
在Ubuntu22.04中执行repo命令时出现"python: No such file or directory"错误,原因是系统默认只安装python3而没有python命令。解决方法有两种:1)创建python到python3的软链接(sudo ln -s /usr/bin/python3 /usr/bin/python);2)更推荐安装python-is-python3包(sudo apt install python-is-python3),该包会自动设置python指向py
2025-07-26 23:48:51
335
原创 Windows11下和Vmware中的Ubuntu22.04设置samba服务遇到的一个问题- valid users和guest设置冲突
摘要:在Windows11和Vmware中配置Ubuntu22.04的samba服务时,遇到"不允许多重连接"错误。主要原因是配置文件中同时启用了valid users和guest ok导致权限冲突。解决方法包括:1) 使用net use * /delete断开现有连接;2) 修正smb.conf配置,只保留用户验证或匿名访问;3) 重启samba服务;4) 重新建立连接。建议选择单一验证方式并确保设置正确的用户密码。问题源于Windows对同一服务器的多重身份访问限制。(150字)
2025-07-26 21:05:22
615
原创 使用Imgui和SDL2做的一个弹球小游戏-Bounze
Bounze是一个使用C++和SDL2开发的弹球游戏项目。游戏玩法包括控制球拍反弹小球击碎钻石获取分数,支持普通模式和增强模式。项目支持Windows和Linux平台,Windows下需用VS2022以CMake工程打开,编译后将resources资源文件夹放置在exe同级目录才能正常运行。不放置资源文件会导致字体等资源加载失败。游戏还包含调试功能,按TAB键可调出调试界面调整音量等参数。
2025-07-23 23:02:40
1857
1
原创 C++23中的std::expected:异常处理
C++23引入的std::expected为错误处理提供了更优雅的解决方案。这个模板类允许函数返回期望值或错误值,避免了异常处理的复杂性。示例展示了如何使用std::expected处理除零错误:当除数为0时返回错误信息,否则返回计算结果。代码还演示了链式调用,通过and_then和or_else方法进行连续操作。相比传统的异常处理,std::expected提供了更类型安全、更直观的错误处理方式,使代码更加清晰易读。该特性特别适用于需要明确处理错误场景的场合,如数值计算、文件操作等。
2025-07-20 22:34:24
873
原创 内存越界访问导致C++ 程序崩溃并使用AddressSanitizer(ASan)工具定位
摘要:本文演示了一个C++程序因数组越界访问导致崩溃的案例,并展示了如何使用AddressSanitizer(ASan)工具定位问题。程序通过vector越界写入破坏内存,可能引发后续崩溃。使用ASan编译后(添加-fsanitize=address -g选项),运行时会精准报告堆缓冲区溢出错误,包括越界操作的具体行号(如nums[5]=100)和内存分配信息。ASan能有效检测内存越界、释放后使用等问题,显著提升调试效率。
2025-07-19 09:12:25
548
原创 C++23中的std::print和std::println
C++23引入了std::print和std::println函数,简化了格式化输出操作。这两个函数通过<print>头文件提供,其中println会自动添加换行符。相比传统cout和printf,它们提供了更简洁易读的语法和潜在的性能优势。示例展示了其基本用法,包括格式化输出和自定义类型格式化。在VS2022中需手动设置C++23标准才能使用这些新特性。这些改进使C++的I/O操作更接近现代语言如Python和Java的便利性。
2025-06-28 20:55:52
794
转载 使用Google Test库进行单元测试
本文介绍了如何使用CMake集成Google Test框架进行C++单元测试。主要内容包括: 通过FetchContent模块在配置时自动下载Google Test库,无需将其包含在项目代码中 展示了测试用例的编写方法,使用Google Test的断言宏 详细说明了CMakeLists.txt的配置步骤,包括: 设置编译选项和标准 定义库和主程序目标 配置Google Test下载和构建 创建测试可执行文件并链接依赖项 启用测试并添加测试用例 该方法简化了单元测试环境的搭建过程,实现了自动化依赖管理,并支持
2025-06-25 23:36:37
244
翻译 使用 GoogleTest 和 CMake 进行单元测试
单元测试框架集成与实现示例 本文介绍了使用GoogleTest和CMake构建C++单元测试环境的解决方案。主要内容包括: 项目结构:采用模块化设计,分离主程序、库和测试目录,其中测试目录使用GoogleTest框架和GoogleMock扩展。
2025-06-14 00:30:09
141
翻译 使用 CMake 的典型 Linux 项目
摘要: 本文介绍了如何使用CMake构建典型Linux项目的实用指南。作者对比了Autotools和CMake,选择后者作为构建工具。文章详细讲解了项目结构设计、模块配置、依赖管理(包括内部模块和外部软件包)等关键环节。通过实际代码示例展示了ADD_EXECUTABLE、ADD_LIBRARY、TARGET_LINK_LIBRARIES等核心CMake命令的使用方法,特别强调了如何利用pkg-config工具处理非CMake注册的外部依赖。本文为开发者提供了简明实用的CMake入门指导
2025-06-13 23:47:15
109
《你必须知道的495个C语言问题》
2010-03-20
HJ 212-2017协议文档以及C++解析类封装
2020-10-23
FFMpeg相关资料.zip
2020-07-19
OpenGL教程电子书(chm格式)中文版
2010-03-23
浙江大学计算机专业历年考研真题
2010-05-19
Acm程序设计比赛资料
2010-05-31
设计模式资料
2012-12-04
C++标准教程----C++初学者的入门资料
2009-12-11
cocos2d-x_2.1.1_EN_API
2013-06-30
VC++6游戏编程 chm格式
2009-12-28
TC-2.0函数查询软件
2010-07-27
系统地介绍了C语言中的指针,指针的概念及指针的使用
2009-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅