深入C++编程入门
文章平均质量分 82
欢迎来到《深入C++编程入门专栏》!如果你渴望掌握一门强大的编程语言,那么C++无疑是一个绝佳的选择。无论是游戏开发、系统编程、嵌入式设备还是高性能应用程序,C++都是行业内的首选语言。
三雷科技
国产操作系统下的QT项目实战,密码算法应用研发,网络安全应用研发。
coco2dx4.0游戏开发,塔防游戏开发实战。
展开
-
C++解析和构建json(cjson使用手册)
cJSON_ArrayForEach:遍历 cJSON 数组: cJSON_ArrayForEach 可以轻松遍历 cJSON 数组中的每一个元素,省去了手动获取数组大小和逐个索引访问元素的麻烦。这些宏使得在处理 JSON 数据时,可以轻松地判断 JSON 对象的类型,并根据类型进行相应的处理。cJSON_GetArraySize:该函数用于获取 JSON 数组的大小(即数组中的元素数量)。: 用于检测未被处理的原始 JSON 数据,通常用在需要处理 JSON 内嵌代码或未解析的文本时。原创 2024-08-13 08:00:00 · 412 阅读 · 9 评论 -
linux编译gcc源码详解
linux编译gcc源码详解原创 2024-07-25 15:03:46 · 112 阅读 · 0 评论 -
dbus类型整理(D-BUS、QT、gdbus、python)
qt-dbus类型整理,最近在做dbus的类型,发现关于类型整理并没有详细介绍,总结一下,关于xml文件对应的整理。起哄b基础类型xmlD-Bus 等价类型Qt DBUSgdbuspythonyBYTEuchardbus.BytebBOOLEANbooldbus.BooleannINT16shortdbus.Int16qUINT16ushortdbus.UInt16iINT32intdbus.Int32uU原创 2021-08-18 17:22:26 · 1248 阅读 · 1 评论 -
DBus客户端使用总结(d-feet,qdbus,dbus-send,gdbus)
目录d-feet客户端qdbus客户端编辑gdbus客户端dbus-send客户端d-feet是比较好用的dbus工具,他使用python语言编写的,并且他有可视化界面,在d-feet工具内可以方便的看到系统dbus接口以及session的dbus接口,在查询dbus接口方面是非常不错的.缺点在于如果希望编写自动化脚本测试dbus接口,d-feet客户端就不行了(也许有方法我不知道)客户端安装详细内容可以看:-> D-Feet的复杂类型使用攻略(DBUS)qdbus客户端是qt的开发客户端工具。使用原创 2022-06-17 09:40:07 · 1519 阅读 · 0 评论 -
linux系统安装国密wireshark
目录一、环境二、资源地址三、安装四、运行五/问题处理系统linux操作系统,抓取国密数据包.国密源码地址需要科学上网,然后通过git下载代码.四、运行wireshark使用到pcap,因此需要使用root用户权限运行.wireshark运行图运行时选择需要监控的网卡就行了。问题一:cmake: relocation error: /lib/x86_64-linux-gnu/libcurl.so.4: symbol GMTLSv1_1_client_method version OPE原创 2020-11-02 09:29:11 · 1765 阅读 · 0 评论 -
dbus-monitor使用详解
是用于监视 D-Bus 系统消息总线的命令行工具。D-Bus 是一种用于在应用程序之间进行通信的消息总线系统,通常在 Linux 系统上使用。可以帮助你捕获和分析 D-Bus 消息,以便调试和了解系统中不同组件之间的通信。原创 2023-12-21 16:00:52 · 935 阅读 · 0 评论 -
linux 判断网卡类型 有线 无线(C语言)
linux 判断网卡类型有线无线查看所有网络接口ls /sys/class/net/ 要区分无线网卡则可以在/sys/class/net/${ifname}/下面找 phy80211 或者 wireless 文件夹,无线网卡目录下才存在这些文件夹通过C函数来查看:#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <原创 2021-01-15 10:19:46 · 2426 阅读 · 0 评论 -
如何使docker共享窗口显示
chmod 777 /var/run/docker.sockdocker run \-v /usr/lib:/usr/lib \-v /var/log/ubx:/var/log/ubx \-itd --restart=always \-p 8017:8017 \-p 8018:8018 \-v /tmp/.X11-unix:/tmp/.X11-unix \-v /etc/localtime:/etc/localtime \-e DISPLAY=unix$DISPLAY \-v $HOM原创 2021-07-26 22:23:21 · 569 阅读 · 0 评论 -
DTK开发环境配置
需要在source.list中添加src的源地址。apt source dtkwidget dtkgui dtkcore结果dpkg-source: info: extracting dtkwidget in dtkwidget-5.4.29dpkg-source: info: unpacking dtkwidget_5.4.29.tar.xzdpkg-source: info: extracting dtkgui in dtkgui-5.4.14dpkg-source: info: unpa原创 2021-07-26 10:35:53 · 795 阅读 · 0 评论 -
GTK编程基础(入门hello world)
框架(Frames)框架(Frames)可以用于在盒子中封装一个或一组构件,框架本身还可以有一个标签。标签的位置和盒子的风格可以灵活改变。在UI设置中,使用框架还是比较多的,也比较简单。看下面的示例代码吧!/*File:frames.c *Date:2014-02-09 *Author:sjin *Mail:413977243@qq.com */ #include <gtk/gtk.h> int main( int argc, char *argv[] ){原创 2020-12-03 11:24:15 · 1747 阅读 · 1 评论 -
version `GLIBCXX_3.4.20‘ not found问题
在linux操作系统中运行程序是出现version `GLIBCXX_3.4.20‘ not found问题的解决方案。原创 2024-09-02 08:00:00 · 106 阅读 · 0 评论 -
远程线程注入--DLL注入(C++)
远程线程注入(Remote Thread Injection)是指通过创建远程线程的方式将代码注入到另一个进程的地址空间中。下面是一个简单的 C++ 示例,展示如何通过远程线程注入一个 DLL 到目标进程中。原创 2024-08-26 22:32:02 · 102 阅读 · 0 评论 -
C\C++ Sqlite3使用详解
在C++中使用SQLite创建表,你首先需要确保你的项目中已经包含了SQLite的库。SQLite是一个轻量级的数据库,它不需要一个独立的服务器进程或操作,并且完全嵌入到使用它的应用程序中。:SQLite的默认编译模式(在大多数系统上)是线程安全的,但如果你打算在多线程环境中使用SQLite,请确保你了解并遵守SQLite的线程安全规则。请记住,执行删除操作时要格外小心,因为一旦执行,被删除的数据就无法恢复了(除非你有备份)。:示例中包含了基本的错误处理,但在实际应用中你可能需要更详细的错误处理逻辑。原创 2024-08-21 09:20:07 · 445 阅读 · 0 评论 -
手戳shellcode编写 第一课(动态函数地址调用函数)
在程序免杀中,我们通常不会直接通过函数名称方式来调用函数,一般都是通过执行shellcode来执行我们需要的代码。如果直接将exe文件解析出来的shellcode会发现这些shellcode不能直接运行,因为函数地址调用的问题。因此我们需要动态获取函数地址来调用shellcode。为了了解shellcode的基础,我们先使用c++源码方式来学习,如果动态的获取函数地址,然后再使用汇编编写以下功能实现shellcode的完成编写。原创 2024-08-21 08:00:00 · 172 阅读 · 0 评论 -
VS在编译时去掉调试信息
PE文件在编译的时候会保存pdb信息,往往会暴露软件开发的信息,因此建议去掉。原创 2024-07-18 19:52:05 · 97 阅读 · 0 评论 -
window系统openssl开发环境搭建(VS2017)
错误严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2019 无法解析的外部符号 RAND_bytes,该符号在函数 main 中被引用 ConsoleApplication3错误 LNK2019 无法解析的外部符号 RAND_poll,该符号在函数 main 中被引用 ConsoleApplication3错误 LNK1120 2 个无法解析的外部命令 ConsoleApplication3由于没有引用动态库文件导致。请看3.2。原创 2024-07-02 16:01:40 · 218 阅读 · 0 评论 -
C++读写ini文件(window系统)
INI文件(Initialization File)是一种简单的、基于文本的配置文件格式,常用于软件的配置和初始化设置。INI文件通常包含配置信息,格式简单易读,常用于Windows操作系统和一些应用程序。原创 2024-06-27 22:43:06 · 678 阅读 · 0 评论 -
GTK3.0高级控件(万字详解+源码)
3.4.1 GTK3.0的GtkTreeView:树视图3.4.1 GTK3.0的GtkListBox:列表框3.4.1 GTK3.0的GtkFlowBox:流动框3.4.1 GTK3.0的GtkIconView:图标视图3.4.1 GTK3.0的GtkSpinButton:旋转按钮(数值输入)3.4.1 GTK3.0的GtkSpinner:旋转器(加载动画)3.4.1 GTK3.0的GtkFrame:框架3.4.1 GTK3.0的GtkAspectFrame:宽高比框架3.4.1 GTK3原创 2024-06-06 09:08:20 · 141 阅读 · 0 评论 -
华为OD干了两个月,还是跑了
本人工作了快13年,base南京。2024年2月份由于公司业务变动第一次拿到了公司发的大礼包,同时也面临着失业的问题,我对自己的技术还是很有信心的,但是,找了大概有一个多月时间,发现心意的工作的确不太好找,当然收到挺多家offer,就是薪资不太满意,外包也一直不想去,不过说实话外包给的薪资普遍要比自研的单位要高一些,最后为了钱还是进华为(既然选择外包那就选择好一些的吧),毕竟中年老男人工作不能断太久。原创 2024-06-06 06:47:10 · 2325 阅读 · 1 评论 -
gtk3.0入门看这一篇就够(十万字总结+源代码)
GTK(GIMP Toolkit)是一个用于创建图形用户界面(GUI)的跨平台工具包,主要用于Linux环境。GTK 3.0 是该工具包的一个版本,提供了一系列用于构建现代化、用户友好的应用程序界面的功能。原创 2024-05-30 21:14:51 · 664 阅读 · 0 评论 -
C++企业级编码规范(大厂规范)
编码规范在软件开发过程中起到了标准化、优化和保障的作用,不仅提升了代码质量和团队协作效率,还为项目的长期维护和扩展提供了坚实的基础。通过坚持和执行编码规范,开发团队能够更好地应对复杂的开发挑战,交付高质量的软件产品。原创 2024-05-18 22:27:28 · 211 阅读 · 0 评论 -
STL源码to_string解析
文件地址:libstdc+±v3\include\bits\basic_string.h。原创 2024-01-31 10:08:41 · 85 阅读 · 0 评论 -
C++11可变模板
定义一个递归的函数。T:表示一个,Types:表示多个。每次递归都移除一个参数,直到最后一个参数为止。void print(const T& firstArg)为结束递归的函数。原创 2024-01-30 18:05:36 · 181 阅读 · 0 评论 -
C++字符串分割
C++ 的 std::string 类并没有直接提供类似于 Python 中 split 方法的内置函数,但你可以使用其他方式来实现字符串分割。因此我们需要自己去实现这个方法。原创 2024-01-30 16:37:11 · 92 阅读 · 0 评论 -
Cppcheck静态分析工具详解
你可以从Cppcheck的官方网站(Cppcheck下载页面)下载并安装Cppcheck。安装完成后,你可以在终端或命令提示符中使用Cppcheck命令。原创 2024-01-18 17:26:13 · 304 阅读 · 0 评论 -
cmake构建动态库实例(cmakelist)
使用相对路径引用动态库的方式-rpath设置。最外层CMakeLists.txt。原创 2024-01-16 13:39:19 · 614 阅读 · 0 评论 -
arm64操作系统LLVM源码编译
编译electron需要对应版本的LLVM编译器,因此需要构建arm64版本的LLVM。构建过程如下。原创 2024-01-04 09:52:16 · 454 阅读 · 0 评论 -
C++虚函数和纯函数
允许在基类中定义通用接口,而将具体实现留给派生类。这样可以实现接口的定义和实现的分离,使得基类更加抽象和通用。进一步推动了接口和实现的分离,因为纯虚函数不提供任何默认实现,完全由派生类来实现。可以创建包含虚函数的抽象类,但它仍然可以被实例化。虚函数可以有默认实现。必须在包含纯虚函数的类中创建一个实例。它强制该类成为抽象类,不能被直接实例化。原创 2023-12-29 16:43:47 · 990 阅读 · 0 评论 -
C++构建简单静态库实例(cmakelist)
C++静态库(Static Library)是一种用于代码重用和模块化开发的方式。它是一组预编译的目标文件(Object Files)的集合,这些文件通常是由源代码编译而来的。这些目标文件被打包成一个单一的文件,以便在编译链接过程中一次性链接到程序中。静态库的文件扩展名通常为.a(在Unix/Linux系统上)或.lib(在Windows系统上)。编写你的C++代码并将其编译成目标文件(.o或.obj将所有的目标文件打包成一个静态库文件。在Unix/Linux系统上,可以使用ar。原创 2023-12-27 10:25:46 · 1466 阅读 · 0 评论 -
vs2017打开工程提示若要解决此问题,请使用以下选择启动 Visual Studio 安装程序: 用于 x86 和 x64 的 Visual C++ MFC
error:D8016 “/ZI”和“/Gy-”命令行选项不兼容 ”问题解决、error MSB8036: 找不到 Windows SDK 版本8.1、用于 x86 和 x64 的 Visual C++ MFC原创 2023-11-17 07:00:00 · 1389 阅读 · 0 评论 -
amd64位linux系统C++交叉编译arm程序详解
交叉编译是指在一种计算机体系结构(如x86)上开发、编译软件,并将其在不同的计算机体系结构(如ARM、MIPS、PowerPC等)上运行。这种方式的主要应用场景是在嵌入式系统、移动设备、网络设备等资源有限的环境中,开发者可以在性能较高的主机上进行开发,然后将程序移植到目标设备上运行。原创 2023-11-08 07:00:00 · 460 阅读 · 1 评论 -
C++和汇编混编开发
在C++和汇编混合编程中,你可以使用C++编写大部分程序,同时使用内嵌汇编(inline assembly)或者汇编文件(assembly files)插入汇编代码片段来完成一些底层的操作或者性能优化。原创 2023-11-07 07:00:00 · 412 阅读 · 1 评论 -
C++实现小学二年级数学试卷题目
最近小侄女上二年级,她们老师要每天做计算题练习,但是题目得自己出(感觉出题比起名字都难),所以自己写了一个小程序满足他这个要求,这样他就又写不完的数学作业了。原创 2023-11-04 07:00:00 · 307 阅读 · 1 评论 -
C++ 常用函数汇总#include<vector>
是C++中用于引入标准库中的动态数组(也称为动态容器)的头文件。是一个非常常用的C++容器,它提供了一个动态数组,可以根据需要自动调整大小,比原始的C数组更加灵活和安全。以下是关于原创 2023-11-01 07:00:00 · 321 阅读 · 0 评论 -
Linux多线程详解(含源码)
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的 Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支 持,包括Windows也包括Linux。为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方原创 2023-10-30 08:00:00 · 398 阅读 · 1 评论 -
C语言中的结构体和联合体有什么区别?
不同的是,在联合体中,所有的成员共享相同的内存地址,这意味着联合体的大小将等于最大成员的大小。这意味着,联合体中的各个成员共享同一块内存区域,而这个区域的大小由最大的成员决定。这是因为在联合体中,各成员共享同一块内存,按最大成员的大小进行内存分配,因此修改一个成员可能会影响其他成员的值。在联合体的内存分布中,为了满足各个成员的对齐要求,整个联合体的大小将会是其成员中最大的那个成员的大小的倍数。这是一个简单的例子,实际应用中,结构体和联合体可以用于更复杂的数据管理和处理场景。结构体用于存储学生信息,原创 2023-10-28 08:00:00 · 239 阅读 · 0 评论 -
C++ 常用函数汇总#include<algorithm>(3万字总结)
C++的头文件提供了许多常用的函数,用于执行各种算法操作,例如排序、搜索、合并等。以下是一些常用的C++头文件中的函数:源码地址:https://gitcode.net/arv002/qt/-/tree/master/c%2B%2B/algorithm文章地址:https://arv000.blog.csdn.net/article/details/133854644。原创 2023-10-31 07:00:00 · 428 阅读 · 0 评论 -
C++ 常用数学函数详解汇总#include<cmath>
在C++中,可以使用 头文件来包含常用的数学函数。这个头文件为C++程序提供了许多数学操作的函数。原创 2023-10-26 07:00:00 · 1271 阅读 · 2 评论 -
C/C++ system()函数的常用参数详解
在Linux操作系统下,system()函数可以用来执行shell命令。你可以传递不同的命令字符串作为参数给system()函数,它将在系统上执行这些命令。以下是一些常用的system()原创 2023-11-03 07:00:00 · 980 阅读 · 1 评论 -
C++入门需要多久?
作为十几年的代码老程序员,想到当时学习C++的时候还是很痛苦的,不过我遇到了一个很好的学长,他教会了我很多东西(在入门初期一个好的老师很重要!!)个人忠告,如果是0基础千万不要觉得看看视频就能学会。代码可能没写一行,你就会卡在编译器安装等问题上。并且作为0基础学员在代码编写上有很多的错误,例如中文符号,漏写结束符号等问题,这些都是小问题。老程序员一眼就能看到你的问题,你遇到问题永远不知道自己错在哪里(严重浪费时间)。那么学习C++我们需要哪些知识呢?原创 2023-10-11 13:59:13 · 175 阅读 · 0 评论