自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(295)
  • 收藏
  • 关注

原创 SQLiteStudio:一款免费开源跨平台的SQLite管理工具

 SQLiteStudio 是一款专门用于管理 SQLite 数据库的图形化工具,由波兰开发者开发并维护。由于 SQLite 以其轻量级、零配置、嵌入式等特性被广泛应用于各种小型项目、移动应用和桌面应用中,而 SQLiteStudio 为用户提供了便捷的方式来管理这些 SQLite 数据库。

2025-03-11 22:27:58 1032 5

原创 一个超级经典的C++序列化&反射库:Cista

在 C++ 的世界里,序列化与反序列化是数据处理中极为重要的环节;而今天要给大家介绍的 Cista,就是在这个领域表现出色的一个库。它以高效、易用的特点,为开发者们提供了强大的支持。Cista(C++ Serialization and Transport Abstraction)是一个轻量级、零依赖的 C++ 序列化库。它的主要目标是提供高效且安全的序列化和反序列化功能,能够处理各种复杂的数据类型,包括自定义结构体、容器等。

2025-03-09 11:15:47 873 4

原创 详解memcpy的实现原理,可不只是逐个字节复制那么简单

memcpy的功能是将src指向的内存区域的前n个字节复制到dest指向的内存区域。使用memcpy,需要注意以下几点:不处理重叠区域(这是memmove的职责)返回目标地址destdest和src都是有效指针内存区域不重叠有足够的空间。

2025-03-08 21:46:37 288 2

原创 C++中使用相对目录的优缺点

最近在一个C++的项目中使用了相对目录,代码如下:在我自己的电脑上程序运行起来,在当前工作目录下可以生成logs目录,而且在logs目录下生成了日志文件ServiceTerminal.txt,但是在同事的电脑上,同样的代码,调试运行却不能生成ServiceTerminal.txt文件,然后在这行代码之前增加打印当前的工作目录代码:经过调试发现currentPath指向的工作目录不对,然后打开工程配置(vs2019工程)发现:调试环境的工作目录配置不对,修改后再次调试,可以生成ServiceTermin

2025-03-08 13:59:22 775 1

原创 C/C++获取结构体成员的偏移量

在 C++ 中,你可以使用标准库中的offsetof宏来获取结构体中某个成员变量相对于结构体起始地址的偏移量。offsetof宏定义在<cstddef>头文件中,它接受两个参数:结构体类型和结构体成员的名称,返回该成员相对于结构体起始位置的字节偏移量。// 定义一个结构体char a;int b;double c;// 获取结构体成员的偏移量return 0;

2025-03-06 20:04:07 1007 6

原创 C++20中的std::bind_front使用及原理分析

与其他替代方案的性能比较1. 与std::bind比较通常比std::bind性能更好,因为它避免了使用占位符带来的参数重排和额外的类型推导开销。std::bind在处理复杂的参数绑定情况时,可能会生成更复杂的代码,导致性能下降。2. 与 lambda 表达式比较简单场景:在简单的参数绑定场景下,和 lambda 表达式的性能相近。编译器对两者都可以进行一定程度的优化。复杂场景:如果需要更复杂的逻辑,例如捕获多个变量、进行条件判断等,lambda 表达式可能更灵活,但也可能会引入更多的代码复杂性。

2025-03-04 20:48:54 1056 8

原创 开源串口数据处理工具Serial Studio(附qml源码链接)

Serial Studio 是一款功能强大且易于使用的串口数据可视化工具。它跨平台的特性、多数据源的支持、高度的定制化能力以及完善的文档,使其成为各种数据采集和可视化项目的理想选择。其开源的特性也使得开发者可以根据自己的需求进行二次开发和定制,进一步拓展其功能。

2025-03-03 21:37:52 1132 3

原创 QT 中的元对象系统(三):QObject深入理解

QObject是 Qt 框架的核心组件,提供了丰富的功能和强大的灵活性,适用于从简单到复杂的各种应用程序开发需求。对象间通信:通过信号与槽机制实现松耦合的设计。内存管理:通过对象树自动管理资源。事件驱动:支持事件处理和扩展。国际化支持:简化多语言应用的开发。动态扩展性:支持动态属性和定时器。在实际开发中,QObject的功能被广泛应用于 GUI 开发、网络编程、嵌入式开发等多个领域。掌握QObject的核心特性对于高效使用 Qt 框架至关重要。

2025-03-03 15:09:14 1551 1

原创 QT 中的元对象系统(二):元对象实现原理QMetaObject

Qt 中的元对象系统,简单的可以分为以下几步:1.在继承 QObject 的类中使用 Q_OBJECT 宏,该宏定义了元对象和相关的方法2.进行 C++ 编译前,Qt 会运行 moc,解析带有 Q_OBJECT 宏的相关类的信息,生成moc文件,得到元数据并构造元对象3.将生成的文件和源文件一起编译Qt 元对象系统通过信号与槽机制、运行时类型信息、动态属性系统和国际化支持等功能,极大地增强了 C++ 的功能,使开发者能够更高效地构建复杂的应用程序。

2025-02-27 22:21:11 964 8

原创 QT 中的元对象系统(一):元对象和元数据

Qt 作为跨平台的GUI框架,在实际项目中应用广泛,在日常的使用中,随手使用的一些机制(如著名的),属性(如),以及重载各种事件函数来完成定制化;还有中直接访问QObject的Property。等等,有了元系统,使得在掌握很少类内部信息都能完成类数据的获取和方法的调用。

2025-02-25 21:04:40 891 12

原创 提升效率的C++内存管理技巧

在某些场景下,需要频繁进行内存分配和释放,常规的内存分配方式(如new和delete)会带来显著的性能开销。这是因为每次调用new时,系统都需要在堆上查找合适的内存块,这涉及复杂的算法和系统调用,同样,delete操作也需要对释放的内存进行管理和回收。为了优化这种情况,内存池技术应运而生。内存池是一种内存管理机制,它预先分配一块较大的内存区域,作为内存池。当程序需要分配内存时,优先从内存池中获取,而不是向系统申请新的内存。当内存使用完毕后,也不立即归还给系统,而是将其放回内存池,以便后续再次使用。

2025-02-21 22:39:12 881 5

原创 CrossGuid:C++ 中的跨平台 GUID/UUID 生成库

CrossGuid 是一个轻量级、易于使用且跨平台的 C++ GUID/UUID 生成库。它提供了简单易用的 API,并符合 RFC 4122 标准。如果您正在寻找一个高效且易于使用的 GUID/UUID 生成库,那么 CrossGuid 是一个值得考虑的选择。CrossGuid 官方网站: https://github.com/graeme-hill/crossguid项目地址: https://gitcode.com/gh_mirrors/cr/crossguid。

2025-02-21 10:50:35 817 3

原创 C++ std::atomic可以使用复杂类型(类和结构体)吗

提供轻量、高效的原子操作,适用于不需要复杂锁机制的场景。同时需理解内存顺序对性能和正确性的影响。对于复杂的多操作组合,仍需谨慎处理竞态条件。不当使用load和store导致竞态条件、对内存顺序的误解、复合操作的不原子性。

2025-02-16 20:35:43 1256 16

原创 Qt中基于开源库QRencode生成二维码(附工程源码链接)

QRencode是一个开源的库,专门用于生成二维码(QR Code)。它支持多种编程语言的接口,包括C、C++、Python等。QR码是一种矩阵式二维码,常用于存储网址、联系信息、文字信息等,广泛应用于各种场景,如产品追踪、广告宣传、文档管理等。QRencode的设计简洁高效,提供了易于使用的API接口,使得开发者能够轻松地在应用程序中集成QR码生成和处理功能。

2025-02-16 14:19:51 1714 9

原创 Qt Creator 5.0.2 (Community)用久了突然变得很卡

很久没有用Qt Creator开发项目了,刚刚结束的项目又是用VS2019开发的;这两天刚好有时间去学习一下Qt,刚好要用Qt Creator,结果一打开就没反应,主界面显示出来要好几分钟,最明显的是在Qt Creator的各种鼠标、滚轮操作每做一次都要好几十秒,几乎卡死的情况。

2025-02-14 22:26:58 581 8

原创 Qt信号槽调用出错:Qt: Dead lock detected while activating a BlockingQueuedConnection

是一种信号与槽之间的连接类型,它用于在Qt的事件系统中同步线程间的通信。当你使用这种类型的连接时,发射信号的线程会阻塞,直到接收信号的槽函数执行完毕。这种机制在需要确保信号发射后某些操作必须完成的情况下非常有用,但它也可能导致死锁或性能问题,特别是当多个线程相互等待时。使用场景线程间同步:当你需要在不同线程间同步操作,并且希望确保一个线程的操作在另一个线程继续之前完成。确保顺序执行:在某些情况下,你可能需要确保槽函数的执行顺序与信号的发射顺序一致。注意事项死锁风险:使用。

2025-02-14 14:29:58 826 1

原创 C++ 洗牌函数std::shuffle的用法

是 C++ 标准库中用于对序列进行随机重排(洗牌)的一种算法。它可以将容器(例如std::array、或普通数组等)中的元素随机地打乱顺序,就像洗扑克牌一样。与早期的相比,要求使用一个随机数引擎(如),从而在提供更可控、更安全的随机生成方式的同时,也避免了潜在的随机质量问题。这个算法定义在头文件中,并且需要 C++11 或更高版本的支持。:可随机访问的迭代器类型(Random Access Iterator),例如指向std::array或内置数组的指针等。

2025-02-13 22:20:24 1292 4

原创 C++ Lambda 表达式的本质及原理分析

是一个匿名类,其捕获的变量存储为类的成员变量,调用时通过重载的operator()实现。值捕获是将外部变量的副本存储为类成员,引用捕获是将外部变量的引用存储为类成员。使用 Lambda 时,需要特别关注变量的生命周期和捕获方式,以避免未定义行为。Lambda 表达式在 C++ 中提供了极大的灵活性和简洁性,特别是在需要定义短小的回调函数或处理算法时。理解并熟练使用 Lambda 表达式可以显著提升代码的可读性和效率。

2025-01-27 22:34:44 2174 10

原创 C++标准线程库实现优雅退出的方式

spdlog一个非常好用的C++日志库(五): 源码分析之线程池thread_pool_spdlog源码分析-CSDN博客log, //普通日志消息flush, //冲刷日志消息到目标(sink)terminate //终止线程池子线程(工作线程)// 析构函数不要抛出异常, 但释放线程池资源资源可能发生异常, 因此内部捕获并处理SPDLOG_TRYi++) {t.join();// 子线程循环// 从环形缓冲区取出数据if (!dequeued)

2025-01-27 21:30:13 780 4

原创 QTimer启动出错: QObject::startTimer: Timers can only be used with threads started with QThread

确保你在一个由QThread启动的线程中使用。如果你需要在非GUI线程中使用定时器,确保这个线程是通过继承QThread并重写run()方法来创建的,并且在启动线程时调用了start()方法。避免在不是由QThread管理的线程中使用 Qt 的信号和槽机制或任何依赖于事件循环的功能。

2025-01-25 22:07:01 673 3

原创 C++常见的错误处理机制

1.异常处理:用于捕获和处理运行时错误,适合处理不可预见的异常情况,而且性能开销较大。2.错误返回码:适用于函数调用链中明确的错误检查,常用于嵌入式系统和性能敏感的代码,性能开销小。3.断言:用于开发阶段捕捉编程错误,发布版本通常禁用。4.日志记录:用于记录和追踪错误,帮助调试和维护。5.条件检查和防御性编程:通过提前检查条件防止错误发生。可以根据具体情况选择最合适的方法来确保程序的健壮性和可靠性。异常处理机制是现代 C++ 推荐的错误处理方式,而断言和错误码在特定情况下也非常有用。

2025-01-15 13:21:36 998 19

原创 手撕代码: C++实现按位序列化和反序列化

C++实现按位序列化和反序列化

2025-01-15 00:11:50 576 5

原创 C++开发工具必备: Denpendency Walker(依赖关系分析利器)

Dependency Walker是一款功能强大的模块依赖性分析工具,它能够帮助用户快速定位和解决与模块依赖相关的问题。无论是程序开发、系统维护还是安全分析领域,该软件都具有广泛的应用价值。

2025-01-14 22:46:59 1035

原创 一个好用的C++数据库操作库:OTL

OTL库是一个功能强大、高效且易用的C++数据库访问库。它提供了丰富的功能和简洁的接口,使得C++开发者能够方便地进行数据库操作。可以使用OTL访问基本上所有的数据库,在你更换数据库时不用修改任何业务代码。强烈推荐在C++开发中使用。

2025-01-12 17:18:31 1245 7

原创 spdlog一个非常好用的C++日志库(二十): fmt::make_format_args(args...)的使用与原理详解

fmt::make_format_args函数利用了 C++ 的模板和类型推导机制,能够在编译时确定传入参数的类型,并将它们存储在一个统一的格式化参数对象中。具体来说,它们会创建一个 fmt::format_arg_store 对象,该对象内部维护了一个参数数组,每个参数都被封装为 fmt::basic_format_arg 类型。这种封装确保了每个参数在格式化时能够正确匹配相应的格式说明符,提供了类型安全的保证。

2025-01-02 22:33:32 1449 17

原创 C++多线程编程之std::call_once

是 C++11 提供的模版函数,能够帮助我们在多线程环境中安全、简洁地实现“单次调用”的逻辑。通过合理使用,我们可以确保线程安全地执行初始化和其他需要保证只执行一次的操作,从而提高程序的稳定性和效率。正确的使用场景、最佳实践以及性能优化技巧将进一步增强我们在多线程编程中的能力。推荐阅读设计模式之单例模式-CSDN博客。

2025-01-02 20:36:33 1056 4

原创 C++代码优化(八):降低编译依赖

加快编译速度:减少依赖关系的传递,避免无关代码的重新编译,减少编译时间。提高可维护性:代码修改时不必修改过多的依赖文件,降低了维护成本。提高灵活性:依赖于声明而不是定义使得系统的扩展性和灵活性更高。修改实现不需要重新编译所有依赖该实现的文件。通过上面这些方法,可以在保持代码清晰和模块化的同时,显著降低编译依赖,使项目的编译过程更高效。C++惯用法之Pimpl_类中隐藏的内存操作 impl-CSDN博客C++类之间双向耦合规避的常见方法_c++ 两个类相互持有指针 是什么设计模式-CSDN博客。

2024-12-29 16:34:27 724 6

原创 spdlog一个非常好用的C++日志库(十九): fmt API介绍

fmt}库为许多标准C++类型提供格式化程序。有关范围和元组,请参阅fmt/ranges.h,包括标准容器,如std::vector;有关日期和时间格式,请参阅fmt/chrono.h;有关其他标准库类型,请参见fmt/std.h。有两种方法可以格式化用户自定义类型:提供format_as函数或专门formatter 结构模板。如果你想让你的类型像其他具有相同格式说明符的类型一样格式化,请使用format_as。

2024-12-20 23:58:03 1411 22

原创 进程间通信-windows命名管道详解以及完整代码实现

命名管道具有简单易用、跨平台兼容性、双向通信、安全性和可靠性等优点。然而,它也受到单机通信限制、性能瓶颈、同步问题、复杂性增加和依赖性等缺点的制约。命名管道通常只适用于同一台计算机上的进程间通信。虽然有些操作系统(如Windows)可能支持跨网络的命名管道通信,但这种方式通常不如套接字(Sockets)等网络通信机制灵活和高效。因此,在选择IPC机制时,应根据实际需求考虑数据传输的速度、大小、方向以及进程间的亲缘关系等因素。

2024-12-18 20:34:10 1037 18

原创 C++ 的衰退复制(decay-copy)

C++中的衰退复制是一个与类型推导和参数传递相关的复杂过程。在编写C++代码时,需要仔细考虑类型匹配和参数传递方式,以避免不必要的衰退复制和潜在的类型错误。从 C++ 23 开始,标准库中原来使用的类似 decay_copy() 函数那样的表达形式,都被 auto(x) 取代,在某些情况下得到了性能提升。

2024-12-18 16:52:31 999 7

原创 LNK2001: virtual struct QMetaObject const 错误的解决方法和原因

今天调整了下工程目录结构(环境是VS2019+Qt5.12.12),重新编译突然出现以下错误:没有修改代码,怎么就出现这个错误了呢?从上面的错误来看,其实就是找不到。

2024-12-15 13:55:27 774 14

原创 C++代码优化(七):优先使用 Lambda, 而非 std::bind

总的来说,优先使用 lambda 表达式,而非std::bind是一个更高效、更简洁、更可维护的编程习惯。通过直接在代码中定义函数体和捕获外部变量,lambda 表达式可以使代码更加直观,减少编程时的认知负担,并且在性能上也具有优势。std::bind虽然很强大,但它的复杂性、可读性差、性能开销以及调试困难,使得它在现代 C++ 编程中逐渐失去了优势。

2024-12-03 21:59:08 952 28

原创 设计模式之生成器模式

生成器模式通过将复杂对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。它允许逐步构建对象,通过调用生成器对象的方法来添加或修改对象的部件。

2024-12-03 16:03:07 907 10

原创 spdlog一个非常好用的C++日志库(十八): 常见问题

出于性能原因,日志条目不会立即刷新到文件中,而是仅在记录了BUFSIZ字节(如libc中所定义)后才刷新。

2024-11-28 17:12:00 1886 15

原创 spdlog一个非常好用的C++日志库(十七): CMake编译

该库也可以使用CMake安装。构建共享库时,在添加spdlog子目录之前,必须将CMAKE_POSITION_INDEPENDENT_CODE设置为TRUE。

2024-11-27 22:11:04 780 6

转载 C++中的链式操作原理与应用(二):函数链式调用

尽管C++不是为函数式编程设计的语言,但它提供了足够的工具和特性来支持这种编程风格。通过结合使用这些特性,你可以在C++中编写出具有函数式编程风格的代码,从而利用函数式编程提供的优势,如模块化、可测试性和并行处理能力。

2024-11-27 22:10:06 133 3

原创 C++中的链式操作原理与应用(一):类接口链式调用

在C++中,链式操作(也称为“链式调用”或“流式接口”)是一种设计模式,允许你在单个表达式中对一个对象的多个成员函数进行连续调用。每个成员函数都会返回对象本身(通常是*this或this指针),这样你就可以在同一个表达式中继续调用下一个成员函数。

2024-11-26 22:14:55 1124 9

原创 spdlog一个非常好用的C++日志库(十六): 错误处理

如果在日志记录过程中发生错误,库将向stderr打印错误消息。为了避免错误消息充斥屏幕,每个记录器的速率限制为1条消息/分钟。在logger或sink构造的过程中可能会抛出异常,因为它被认为是致命的。spdlog在记录日志时不会抛出异常(自39cdd08版本起)。_default_err_handler将使用此命令打印错误。

2024-11-26 16:45:17 249 2

原创 C++ std::unique_ptr的使用及源码分析

你可以为unique_ptr指定一个自定义的删除器。delete p;// 当 ptr 离开作用域时,customDeleter 会被调用return 0;C++智能指针的自定义销毁器(销毁策略)_c++指针销毁-CSDN博客。

2024-11-24 19:36:57 1922 12

原创 C++ 判断点是否在旋转矩形内部

这个原理可以通过考虑四边形的顶点按顺序连接形成的向量和点 ( P ) 形成的向量之间的相对位置来数学证明。如果点 ( P ) 在四边形内部,那么由四边形的边和点 ( P ) 形成的所有三角形都将具有相同的“转向”(即所有顶点的排列顺序相同),这导致所有叉乘结果的符号相同。总结来说,检查叉乘结果的符号是否一致是一种有效的方法来判断点是否在旋转矩形内部,因为它利用了向量叉乘的几何特性和多边形的几何结构。这种方法简单、直观,且在计算上相对高效。

2024-11-24 12:15:18 980

C++继承多接口,调用虚函数跳转到错误接口的虚函数的奇怪问题demo

C++继承多接口,调用虚函数跳转到错误接口的虚函数的奇怪问题,一个示例的dmeo

2024-04-11

浮点数与十六进制转换工具

 在 C/C++中,使用浮点方式存储实数,用两种数据类型来保存浮点数: foat(单精度)和double(双精度)。float在内存中占4字节,double在内存中占8字节。由于占用空间大,double可描述的精度更高。这两种数据类型在内存中同样以十六进制方式存铺,但写大类型有所不同。         整型类型是将十进制转换成二进制保存在内存中,以十六进制方式显示。浮点类型并不是将一个浮点小数直接转换成二进制数保存,而是将浮点小数转换成的二进制码重新编码,再进行存储。C/C++的浮点数是有符号的。         在C/C++中,将浮点数强制转换为整数时,不会采用数学上四舍五人的方式,而是食弃掉小数部分,不会进位。         浮点数的操作不会用到通用寄存器,而是会使用浮点协处理器的浮点寄存器,专门对浮点数进行运算处理。

2024-01-22

C++设计模式例程,工厂模式例子

C++设计模式例程,工厂模式例子,环境是VS2019打开即可运行 工厂模式也是平时我们编程用的比较多的一种行为设计模式,它提供了一种创建对象的最佳方式。工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。工厂模式属于创建型模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离。 作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过 new 就可以完成创建的对象,无需使用工厂模式。如果使用工厂模式,就需要引入一个工厂类,会增加系统的复杂度。

2024-01-15

高质量 C++编程指南,编程的好书籍

前言......................................................................................................................................6 第 1 章 文件结构....................................................................................................................8 1.1 版权和版本的声明........................................................................................................8 1.2 头文件的结构 ....................................................................................................

2023-12-26

C++模板函数重载规则详解

模板函数重载匹配规则,他规定着,当我们调用一个具有多个重载的模板函数时,该选择哪个函数作为我们的调用对象。与普通函数的重载类似,但是模板属性会增加一些新的规则。 模板函数重载匹配规则可以引用《c++ primer》中的一段话来总结: 对于一个调用,其候选函数包括所有模板实参推断成功的函数模板实例。 候选的函数模板总是可行的,因为模板实参推断会排除任何不可行的模板。 与往常一样,可行函数(模板与非模板)按类型转换 (如果对此调用需要的话)来排序。当然,可以用于函数模板调用的类型转换是非常有限的。 与往常一样,如果恰有一个函数提供比任何其他函数都更好的匹配,则选择此函数。 但是,如果有多个函数提供同样好的匹配,则: 如果同样好的函数中只有一个是非模板函数,则选择此函数。 如果同样好的函数中没有非模板函数,而有多个函数模板,且其中一个模板比其他模板更特例化,则选择此模板。 否则,此调用有歧义。 看着有点不知所以然,我们一条条来看。这里我给整个过程分为三步: 第一步:模板函数重载匹配会将所有可行的重载列为候选函数。 ...

2023-12-26

sscom 串口调试工具

SSCOM串口调试助手是一款串口通讯软件,在这款软件中主要帮助用户在电脑中对串口进行管理和设置;软件能在任意串口中设置参数,并提供数据的接收、发送等操作,让用户能更加方便轻松的对其管理;软件界面简洁,可以通过十六进制的方式来进行数据转换,操作流程十分的方便,上手难度极低,十分好用。 软件特色 1、SSCOM还支持多种发送方式,如单次发送、循环发送、分段发送等; 2、能够满足不同需求场景的使用要求; 3、SSCOM的独立性较高,支持在没有Python等其他软件的环境下使用,更加方便了用户的使用操作。 软件优点 1、在使用SSCOM时,我们只需将串口设备连接到电脑上; 2、并在SSCOM中选择对应的串口号和通讯协议,设置好波特率等参数,即可开始使用; 3、在数据接收时,我们可以进行数据的实时监控和记录,并且支持数据的导出; 4、在数据发送时,我们可以通过简单的设置实现数据的快速发送和测试。

2023-12-20

NetAssist 网络调试工具

NetAssist,就是网络助手,可以模拟网络之间的通信,互相发送消息 网络调试助手是一款用于Android端网络调试的工具,支持TCP,UDP协议,支持机器自带的串口(可能需要root权限)支持多种网络端口的链接,让网络维修人员或者是个人能够更加简单的对网络进行深度的调试,从而让整个网络更加的符合用户在使用上面的需求,如果你需要的话这款自带中文的调试软件能够满足你的需求。 网络调试助手(NetAssist)软件功能 支持TCP Server,TCP Client, UDP 支持机器自带的串口 支持USB转串口 Esp Touch配网 以对话形式显示通信数据,支持同时建立多个连接 16进制格式数据发送

2023-12-20

基于C++CORBA高级编程

全书共22章,系统地介绍了CORBA的基本体系和概念,IDL语义和映射为C++的规则、POA和对象生命周期,CORBA机理和ORB,动态CORBA特性以及CORBA重要的服务程序。本书的独到之处在于它不仅介绍概念及资源,更重要的是讲述超越API的CORBA内部机制

2023-12-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除