hjf161105的博客

业精于勤荒于嬉,行成于思毁于随。
私信 关注
hjf161105
码龄4年

业精于勤荒于嬉,行成于思毁于随

  • 741,412
    被访问量
  • 234
    原创文章
  • 9,390
    作者排名
  • 505
    粉丝数量
  • 于 2016-11-05 加入CSDN
获得成就
  • 获得254次点赞
  • 内容获得170次评论
  • 获得587次收藏
荣誉勋章
兴趣领域
  • #Android
    #gradle#Android Studio#性能优化#Java
TA的专栏
  • linuxC语言学习
    71篇
  • 项目
    25篇
  • c/c++细节知识整理
    36篇
  • qt学习
    19篇
  • c++设计模式
    30篇
  • c#设计模式
    10篇
  • MySql
    12篇
  • 嵌入式系统STM32
    21篇
  • 嵌入式系统S3C2451
    16篇
  • Android学习
    13篇
  • 嵌入式系统FPGA
    12篇
  • c++学习
    12篇
  • 单片机学习
    10篇
  • 网页设计与制作
    2篇
  • c#界面制作
    2篇
  • 数据结构整理
    2篇
  • 求职经历
    2篇
  • Git学习
    2篇
  • 随笔
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

解决AIDL的parcelable编译问题,aidl.cpp:581 refusing to generate code from aidl file defining parcelable

近期需要为App端封装一些接口,在service端收到了一包数据后,想通过AIDL传递至client,于是想到了AIDL的parcelable用法,本地代码实现的时候,出现了一个编译错误:aidl E 05-29 20:53:03 19105 19105 aidl.cpp:581] refusing to generate code from aidl file defining parcelable网上的说法是aidl文件和java文件的包名不一致导致的,于是修改了代码,确认了包名,但...
原创
792阅读
0评论
1点赞
发布博客于 9 月前

Android == JNI静态注册

今天记录一下学习Android中JNI的过程,JNI全称java native interface,负责Java和native之间的函数互相调用,本文记录下JNI静态注册的学习过程。第一步、首先新建一个测试目录mkdir ~/jnitestcd ~/jnitest第二步、新建一个java文件jnitest.java,里面只有一个class,声明一下加载库和nat...
原创
389阅读
0评论
1点赞
发布博客于 2 年前

Android == JNI动态注册

传统的关于android使用JNI调用C/C++程序,首先javah 生产头文件,然后拷贝头文件里面的方法到C文件中进行映射调用,也就是JNI的静态注册,上一篇文章已经讲了,由于这种方法生成的映射方法名不太规则也比较长,二呢是调用数据较慢;因此可以使用JNI动态注册方法的方式来解决这个问题。 学习这个JNI动态注册的时候还是遇到了挺多的问题的,现在就讲这些问题做下记录。准备知...
原创
1037阅读
1评论
2点赞
发布博客于 2 年前

Android == 简单的binder通信

这个月初开始入职实习了,经过这几天的熟悉,大概了解了将来负责的方向了,然后就是开始学习。主要学习Android的Framwork一层,为上层的UI写一些接口封装,涉及到Android不同的service之间的通信,以及上层Java和底下native(C/C++)之间通信,也就是JNI技术(Java Native Interface的缩写)。 刚开始给了一份binder的简单程序理...
原创
581阅读
0评论
2点赞
发布博客于 2 年前

基于qt5.2的银行管理系统--之前版本的改进

   前人都说,温故而能知新,可以为师矣。过了一段时间了,我又将之前写的银行管理系统拿出来改善一下,感悟一下当时写的感受,再对比一下,这次写了又有什么改变,有了什么收获。  与之前写的那个版本相比,我又几个方面进行了改进。  1、之前写的时候,客户端界面之间的数据通信时,我是用全局变量和extern来实现不同文件之间的数据共享,这次不同,我是用窗口类与类之间继承,派生类访问基类的数据来实现...
原创
2740阅读
13评论
0点赞
发布博客于 2 年前

QT学习之路八(qt实战--银行管理系统)

  之前几篇博文提到过,这几天我一直在做一个银行管理系统,算是对c++只是的一个巩固吧,再加上我是用qt做的,从头到尾还是重新开始学qt的模块。这次的成果还是挺让我满意的,最主要的是这是我第一次接触界面的制作,感觉挺新奇的。上一篇说到我做的时候mysql的驱动没找到,服务器存储和线程的开辟还是有点问题,现在做完了这个银行的管理系统,我又开始着手将之前的聊天室界面做一下,乘着这个机会,我要将这次没有...
原创
4623阅读
1评论
0点赞
发布博客于 2 年前

CarPlay wired连接与wireless连接相互切换

本文转自:https://blog.csdn.net/huangke2012hk/article/details/51258714 在CarPlay系列的前面博客中我分别对CarPlay的wired(USB)连接方案和wireless(蓝牙+Wi-Fi)连接方案作了介绍,在这篇博客中我主要介绍两种连接方案的切换。首先,要求车载设备对CarPlay的wired(...
转载
712阅读
1评论
0点赞
发布博客于 2 年前

CarPlay wireless(蓝牙+WiFi)连接方案(Wi-Fi部分)

本文转自:https://blog.csdn.net/huangke2012hk/article/details/51240615这篇博客是继上一篇CarPlay wireless(蓝牙+WiFi)连接方案(蓝牙部分)的第二部分:Wi-Fi部分。在这篇博客中我主要是针对CarPlay over wireless方案中的Wi-Fi部分做介绍。在Wi-Fi方面,车载设备工作在A...
转载
4619阅读
1评论
0点赞
发布博客于 2 年前

CarPlay wireless(蓝牙+WiFi)连接方案(蓝牙部分)

本文转自:https://blog.csdn.net/huangke2012hk/article/details/51226220在这篇博客中我将介绍我的CarPlay系列的第三篇博客:基于wireless(蓝牙+WiFi)的CarPlay连接方案。在苹果公司推出基于wired(USB)的CarPlay连接方案后(在我的上一篇博客中已对CarPlay的USB的连接方案做过介...
转载
7941阅读
0评论
0点赞
发布博客于 2 年前

CarPlay wired(USB)连接方案

本文转自:https://blog.csdn.net/huangke2012hk/article/details/51225887在上一篇博客中我对CarPlay做了基本的介绍,在这篇博客中我将介绍CarPlay的wired(USB)的连接方案。首先,CarPlay的wired(USB)的连接方案要求车载设备至少要支持USB2.0 Hi-Speed,能够同时处理bulk I...
转载
3116阅读
0评论
2点赞
发布博客于 2 年前

CarPlay介绍

本文转自:https://blog.csdn.net/huangke2012hk/article/details/51206925CarPlay是苹果公司为车载系统开发的一项功能,该功能将iOS设备的界面通过USB或wireless(蓝牙+Wi-Fi)投影显示在车载屏幕上,可以让驾驶员在车内通过车载屏幕直接方便地使用iOS设备上的功能。例如,在车载屏幕上直接使用iPhone或iPad上的地图、...
转载
2473阅读
0评论
0点赞
发布博客于 2 年前

使用 Android Studio 写出第一个 NDK 程序

    NDK(Native Development Kit),是用于在 Android 应用中嵌套本地代码的工具集,现在 Android 开发最常用的工具就是 Android Studio 了,笔者也是刚刚接触 NDK 开发,用了一天的时间,踩了很多坑,最终跑通了自己的第一个 NDK 程序,话不多说,现在开始。第一步:给 Android Studio 配置 NDK:    选择 SDK ...
转载
222阅读
0评论
1点赞
发布博客于 2 年前

LINUX创建文件和目录的默认权限

  在linux中,一位用户在创建文件和目录时,对其具有的权限都是一样的,如需更改,需要chmod命令做相应的更改。为什么?其实是权限掩码起作用了。        权限掩码的作用就是规范初创文件和目录时候的权限设置,免去了创建后再次修改权限的问题。因此,权限掩码的设置需要合理。   1、查看用户的权限掩码         命令:umask  示例@ubuntu:~/work$...
转载
7224阅读
0评论
0点赞
发布博客于 3 年前

Ubuntu14.04下配置Samba服务器,Win7总是无法访问

    Samba服务器之前在centos上配置过了,最近在公司有两台电脑,一台win7,一台Ubuntu,但是配置了Samba服务器之后,win7一直无法访问,好不容易解决了,现将问题解决下。   首先是Samba的安装与配置,网上很多博客都有过介绍    1、首先同步源的索引,保证获取到最新的软件包。执行sudo apt-get update2、安装samba和samba-c...
原创
1772阅读
0评论
1点赞
发布博客于 3 年前

基于S3C2451裸机开发的电子相册

  学习S3C2451也有一段时间了,对于ARM9裸机开发也有了一点了解,这次做了一个基于ARM9裸机开发的电子相册,其中也遇到了一些问题,最终都通过各种方法解决了,现也将之记录,给后人一个借鉴。  这次电子相册开发使用的是广州友善之臂的Mini2451开发板,内置三星公司的S3C2451芯片,对于该芯片的用法在前几篇博文中已介绍过了,有兴趣的朋友可以翻阅前几篇博客,本人将所有的函数封装都已经...
原创
914阅读
3评论
1点赞
发布博客于 3 年前

深夜随笔

    很久没有写博客了,半夜翻来覆去睡不着,想写点东西,与技术无关,我也很久没有写技术相关的博客了,每天都在学习公司的业务逻辑,没有什么时间学其他的东西了。半夜翻来覆去睡不着,感觉心里有些话想说但又无处可说,聊以博客倾诉一下吧。    我从小成长在农家,一直以来接受的教育就是好好学习,在高中之前,我所认为的学习无非就是大家伙儿一起上上课做做作业玩玩罢了,没有想过未来,或者说大家的未来都是一样...
原创
600阅读
2评论
11点赞
发布博客于 3 年前

Git学习==git config

    把Git的服务器搭建好之后,我最困惑的就是Git是怎么配置的,服务器配置的user.name和email有什么用?学了git config之后有了一些理解。本文主要想讲解一下关于git config的一些命令及其作用。    首先git config分为三个等级,分别是system、global和local,加载配置文件时,其权限大小依次为local > global > sy...
原创
1025阅读
0评论
0点赞
发布博客于 3 年前

Git学习==阿里云Ubuntu搭建git服务器

    前段时间在公司实习的时候接触到了git,用了几次,但是都是通过图形化界面操作的,趁着回校答辩的时候花点时间学下git。得益于之前租赁的阿里云服务器,我可以直接在阿里云上搭建自己的git,等到期之后再接触下GitHub吧。一、服务器配置1、首先服务器安装git:sudo apt-get install gitsudo apt-get install git-core2、安装完之后配置一下u...
原创
854阅读
4评论
1点赞
发布博客于 3 年前

QT学习之路六(QT的tcp传输)

这几天一直在做银行的管理系统,包括职工的登陆注册以及客户的开户转账存取款等功能,这几天天天通宵也写的差不多了,还剩下最后一个功能,交易记录的管理,差不多明天应该就能结束了。  这两天为了做这个东西,我把qt的网络模块初学了一下,学了一下qt的tcp传输,实现了服务器与客户端的通信。但是,在做的时候,我本来是打算做一个循环并发的服务器,但测试了一下后,突然发现,这个服务器根本不用开线程,它一直在...
原创
1832阅读
1评论
1点赞
发布博客于 3 年前

Android == 在Android系统上运行JAVA程序

在linux上运行java程序,直接用javac编译,再用java运行就行了。但是在Android上,由于虚拟机和pc端的不同,所以操作方法也是不一样的。如果想在Android上运行Hello world!。则需要一下步骤。/* File Name: Hello.java */public class Hello{ public static void main(String[] ar...
原创
5142阅读
0评论
1点赞
发布博客于 3 年前

Android == Binder 和 Service

在 Zygote启动过程 一文中我们说道,Zygote一生中最重要的一件事就是生下了 System Server 这个大儿子,System Server 担负着提供系统 Service的重任,在深入了解这些Service 之前,我们首先要了解 什么是Service?它的工作原理是什么?  1. Service是什么?  简单来说,Service就是提供服务的代码,这些代码最终体现为一个个的接口函数...
转载
263阅读
0评论
0点赞
发布博客于 3 年前

Android == Zygote, System Server 启动分析

      Init 是所有Linux程序的起点,而Zygote于Android,正如它的英文意思,是所有java程序的'孵化池'(玩过星际虫族的兄弟都晓得的)。用ps 输出可以看到>adb shell ps | grep -E 'init|926' root 1 0 656 372 00000000 0805d546 S /init root ...
转载
197阅读
0评论
0点赞
发布博客于 3 年前

笔试总结之美亚柏科

最近我的一些学弟经常询问我关于笔试和面试的经验,今天开始准备将今年秋招中遇到的公司的一些经典题目总结一下, 也给网络上的朋友们分享分享一点微薄的经验吧。这篇博客记录厦门美亚柏科的笔试题,题目都很基础,但也都非常的经典。-------------------------------分割线--------------------------------一、选择题1、short a[100]
原创
7739阅读
1评论
6点赞
发布博客于 3 年前

make menuconfig的时候出现一大堆未定义的错误

kernel$ make menuconfig  HOSTLD  scripts/kconfig/mconfscripts/kconfig/mconf.o:在函数‘show_help’中:mconf.c:(.text+0x914):对‘stdscr’未定义的引用scripts/kconfig/lxdialog/checklist.o:在函数‘print_arrows’中:che
原创
1168阅读
0评论
0点赞
发布博客于 4 年前

阿里云Ubuntu16.04搭建LAMP+私有云nextcloud

自从租了阿里云云翼服务器之后,一直想要搭建一个属于我自己的私有云,可以存放一些资料什么的,这两天一直在配置环境,绕了很多弯路,在网上查遍资料,出现一个有一个bug,然后一个一个解决,整整花了两天的时间才把nextcloud私有云搭建起来。  说句实在话,我对web和网络一知半解,对前后端是知之甚少,完全是摸索着学习。一开始,云栖社区文章说需要搭建LAMP的经典web环境,不过在云栖中介绍的主要
原创
7003阅读
0评论
2点赞
发布博客于 4 年前

亲测有效,解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";

最近租了一个阿里云云翼服务器,趁着自己还是一个学生,享受一下优惠。我租的是阿里云Ubuntu16.04版本的服务器,在搭建mysql的时候,一开始是可以运行的,由于某次手抽,把mysql的套接字文件不小心删除了,然后无论怎么卸载重装,都出现了这个问题:root@iZufkfljcZ:~# mysql -uroot -pEnter password: ERROR 2002 (HY000):
原创
363710阅读
73评论
89点赞
发布博客于 4 年前

单片机智能家居的升级——物联网智能家居

之前做过一个基于51和STM32的无线射频智能家居,是采用2.4G无线射频模块将51采集的数据发送至STM32显示,但那个仅仅只是短距离通信,它的实用性不怎么强,之后有想过将之补充一下,做一个物联网的智能家居。  前段时间,接触到了一些开源服务器,Yeelink、传感云和乐联网等等,然后就有个想法,升级一下我的智能家居项目,刚开始打算使用Yeelink,但是网络调试的时候一直无法连接到Yeel
原创
1824阅读
1评论
1点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(十二)········ 编译预处理

Verilog HDL语言和C语言一样也提供编译预处理的功能。在Verilog中为了和一般的语句相区别,这些预处理语句以符号"`"开头,注意,这个字符位于主键盘的左上角,其对应的上键盘字符为"~",这个符号并不是单引号"'".这里简单介绍最常用的`define `include `timescale.1)宏定义`define用一个指定的标识符(名字)来代表一个字符串,其的一般形式为
转载
393阅读
0评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(十一)········ 常用系统函数

1)系统任务:$monitor 格式:$monitor(p1,p2,p3...pn);$monitor;$monitoron;$monitoroff;任务$monitor提供了监控输出列表中的表达式或变量值的功能。其参数列表中输出格式控制字符串和输出列表的规则和$display一样。当启动一个带有一个或多个参数的$monitor时,仿真器则建
转载
834阅读
0评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(十)········ 常用系统函数

$display 和 $write 任务格式:$display (p1,p2,...,pn);$write (p1,p2,..,pn);这两个函数和系统的任务作用是用来输出信息,即将参数p2到pn按照参数p1给的格式输出。参数1通常称作“格式控制”,参数p2至pn通常称作输出表列。这两个任务的作用基本相同,但是$display自动的在输出后进行换行,而$write却
转载
841阅读
0评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(九)········ 任务和函数

task 和 function 说明语句分别用来定义任务和函数,利用任务和函数可以把函数模块分成许多小的任务和函数便于理解和调试。任务和函数往往还是大的程序模块在不同地点多次用到的相同的程序段。输入、输出和总线信号的数据可以传入、传出任务和函数。task 和 function 的不同:1)函数只能与主模块共用同一个仿真的时间单位,而任务可以自己定义自己的仿真时间单位。2)函
转载
585阅读
0评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(八)········ 结构说明语句

Verilog中的任何过程都可以属于以下四种结构的说明语句;1) initial;  2) always;  3) task;   4) function;1) initial说明语句;一个程序中的 initial 和 always 的次数是不受限制的,他们都是在仿真的一开始同时开始运行的。initial 只执行一次,而 always语句则是不断地重复活动,直到仿真活动结束
转载
612阅读
0评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(七)········ 生成块

生成块可以动态的生成Verilog代码。可以用于对矢量中的多个位进行重复操作、多个模块的实例引用的重复操作、根据参数确定程序中是否包含某段代码。生成语句可以控制变量的声明、任务和函数的调用、还能对实例引用进行全面的控制。在编程时,应用关键字generate_endgenerate来说明生成的实例范围。生成实例可以是一下的以下一种或多种类型:1)模块 ;  2)用户定语原语 ; 3)
转载
1116阅读
1评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(六)········ 循环语句

在Verilog中存在着4种类型的循环语句,用来控制执行语句的执行次数。1)forever语句: 连续执行的语句。2)repeat语句:  连续执行n次的语句。3)while语句:    执行语句,直至某个条件不满足。4)for 语句:      三个部分,尽量少用或者不用for循环。各语句的格式与注意事项:1)forever格式:    f
转载
457阅读
0评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(五)········ 条件语句

条件语句可以分为if_else语句和case语句两张部分。 A)if_else语句三种表达形式1) if(表达式)          2)if(表达式)               3)if(表达式1)            语句1;                    语句1;                           语句1; 
转载
1107阅读
0评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(四)·········块语句

块语句是指将两条或者两条以上的语句组合在一起,使其在格式上更像一条语句。块语句分为两种:1)用begin_end语句,通常用来标识顺序执行的语句,用它标识的块称作顺序块;2)用fork_join语句,通常用来标识并行执行的语句,用它标识的块称作并行块。 A)顺序块begin    语句1;    语句2;   ....   
转载
208阅读
0评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(三)·········赋值语句

在Verilog HDL语言中,信号有两种赋值方式。A)非阻塞赋值(Non-Blocking)方式(如:b(1)在语句块中,上面语句所赋值的变量不能立即为下面的语句所用;(2)块结束后才能完成这次赋值操作,赋值的职位上次赋值得到的;(3)在编写可综合的时序逻辑模块时,这是最常用的复制方法。 B)阻塞赋值(Blocking)方式(如:b=a;)
转载
470阅读
0评论
0点赞
发布博客于 4 年前

Verilog学习笔记基本语法篇(二)·········运算符

Verilog HDL的语言的运算符的范围很广,按照其功能大概可以分为以下几类:(1)算术运算符 +,-,*,/,%                             优先顺序!~*  /   %+    ->   >=  ==  !==  === !===&^  ^~|&
转载
1345阅读
0评论
1点赞
发布博客于 4 年前

Quartus 生成pof的设置 和 Error: Can't place pins assigned to pin location Pin错误解决

Quartus 生成pof的设置在assignments -- device -- device and pin option, 在configuration 选项卡当中,要勾上Use Configuration device,并选择好配置芯片。选择configuration scheme为Active SerialError: Can't place pins assig
转载
720阅读
0评论
0点赞
发布博客于 4 年前

求职经历面试之宇都

前段时间在南邮做了宇都的笔试,一家做网络接口芯片的公司,今天去面试,一个有四轮面试,首先是HR面,HR估计是把我的学校搞错了,我是某211大学的下属院校,她把搞错当成那个211大学的了,然后问了我很多那个学校的问题,很尴尬不知道。然后随便扯了点就业地点、职业规划等。HR面就只有10多分钟,回答的云里雾里的。  接下来是技术面,技术面问的很仔细,问了我聊天室很多问题,比如,怎么判断客户端请求的是
原创
568阅读
1评论
0点赞
发布博客于 4 年前

求职经历笔试题之美乐威

我是在9月7日做的美乐威的笔试题,然后因为一些原因被淘汰了,但是美乐威公司的笔试题还是不错的,现将之整理归纳(声明:答案是本人自己做的,仅供参考,不保证正确):1、请指出下列程序中的错误:class BaseClass{public: BaseClass():m_a1(1), m_a2(2) { } ~BaseClass();public: int GetValue1() {
原创
502阅读
0评论
3点赞
发布博客于 4 年前

tslib移植出现的小问题

1. 编译:$export CC=/work/ebook/arm-linux-4.1.1/bin/arm-linux-gcc      //toolchain路径$./autogen.sh   //生成config文件$export PATH=$PATH:/work/ebook/arm-linux-4.1.1/bin/$echo "ac_cv_func_malloc_0_nonnu
转载
144阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451之linux驱动led

linux驱动led  经过了上一个linux虚拟设备驱动之后,再次着手编写led的驱动,驱动的大概模型其实和上一篇的差不多,都是那几个步骤,led的驱动比虚拟数组驱动还要简单一点,没有了read和write、lseek函数,多了一个ioctl函数,用于控制灯的开关。  首先第一步,声明led控制的寄存器,以及一些全局变量和头文件:#include #include #includ
原创
290阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451之linux驱动入门

驱动入门——虚拟设备驱动  第一个驱动的例子是以虚拟的设备为例子,两个int型的数组作为设备,编写驱动实现用户层直接系统调用来控制数组设备的输入输出。  linux中所有设备都是看做是文件处理,用户层能通过系统调用直接往数组设备中填入信息和读取信息。  linux的驱动的步骤都是相似的,首先是加载卸载以及声明GPL:MODULE_LICENSE("GPL");module_in
原创
225阅读
1评论
1点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451之Linux移植步骤

Linux内核裁剪、根文件系统制作、系统烧录环境:Redhat5Mini2451开发板linux-3.6内核  这几天学习了linux在mini2451开发板上的移植,以及后续的简单字符设备、混杂设备和平台总线驱动的编写,深入感受到了linux的强大和魅力,现将之一一记录。一、Uboot和Superboot  这次linux移植,我没怎么用到uboot,主要
原创
703阅读
0评论
1点赞
发布博客于 4 年前

嵌入式系统学习——arm-qtopia添加应用

在arm-qtopia中添加应用(基于mini2451-Friendly)环境:Redhatvmware11mini2451开发板arm-Linux-gcc 4.3.2qtopia-2.2.0安装:参考友善的mini2451用户手册,分别安装x86平台和arm平台的qtopia-2.2.0。友善在/opt/这个目录下,产生了两个子
原创
184阅读
0评论
1点赞
发布博客于 4 年前

嵌入式系统学习——x86-qtopia添加应用

在x86-qtopia中添加应用(基于mini2451-Friendly)环境:Redhatvmware11mini2451开发板arm-Linux-gcc 4.3.2qtopia-2.2.0安装:参考友善的mini2451用户手册,分别安装x86平台和arm平台的qtopia-2.2.0。友善在/opt/这个目录下,产生了两个子目录,分别是x86-qt
原创
221阅读
0评论
1点赞
发布博客于 4 年前

C++编译器什么时候为我们自动生成拷贝构造函数?

给出程序:#include using namespace std;class A{public: A() { cout << "1" << endl; } ~A() { cout << "2" << endl; }};class B : public A{public: B() { cout << "3" << endl; } ~B()
转载
1138阅读
1评论
0点赞
发布博客于 4 年前

C++中的空类,默认产生哪些类成员函数?

答:classEmpty{  public:     Empty(); // 缺省构造函数     Empty( constEmpty& ); // 拷贝构造函数     ~Empty(); // 析构函数      Empty&operator=( const Empty& ); // 赋值运算符      Empty*operator&(); // 取址运算符
转载
166阅读
0评论
0点赞
发布博客于 4 年前

函数指针和指针函数

函数指针和指针函数经常是很多初学者感到疑惑的地方,其实这两个是完全不同的概念。指针函数  指针函数就是返回值为指针类型的函数。函数指针  指针函数的概念其实挺简单的,关键是函数指针,这个概念之前一直是我头疼的地方,每次看函数指针都是一知半解。看函数指针的时候,出现的最多的是typedef和函数指针一起出现: typedef return_type (*def_type)(
原创
197阅读
0评论
0点赞
发布博客于 4 年前

嵌入式多功能电子相册之上位机

前几天做了基于S3C2451裸机开发的多功能相册,其中有个很重要的功能,就是上位机对下位机的控制。例如:开启相册、切换相册、同步校准时间和设置字幕等功能。之前用的是一个网上下载的上位机,虽说用起来挺顺手的,但是这毕竟不是自己写的东西,总感觉对这个项目没有完全吃透。难得想做一个嵌入式项目,我不想留有任何的遗憾,况且我自认为对QT也是有一点了解了,所以我这两天用QT做了一个上位机,虽说功能上和网上下载
原创
1026阅读
1评论
0点赞
发布博客于 4 年前

浅析三种特殊进程:孤儿进程,僵尸进程和守护进程.

其实有时想想linux内核的设计也蕴含着很多人生哲学,在linux中有这么几个特殊进程中,我们一开始见到它们的名字可能还会觉得很诧异,但在了解完了原理后,我们仔细想想,这样的命名也不无道理!下面我就给大家分别介绍一下这三种特殊的进程!  1.孤儿进程  如果父进程先退出,子进程还没退出那么子进程将被 托孤给init进程,这是子进程的父进程就是init进程(1号进程).其实还是很好理解的.
转载
359阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451之2.4寸LCD函数封装

S3C2451开发板LCD函数封装参考:#ifndef _S3C2451_LCD_H#define _S3C2451_LCD_H#include "typedef.h"// typedef unsigned int U32;// typedef unsigned short U16;#define VIDCON0 (*(volatile unsigned *)0x4c800
原创
438阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451之RTC时钟

当系统电源关闭时,通过备用电源可以运行实时时钟(RTC)单元。数据包含的时间,即秒,分钟,小时,日期,日,月和年。RTC 工作由一个外部32.768kHz 的晶体驱动,并可以执行报警功能。  RTCCON 寄存器的位0 必须被设置为高位,为了是可以写入实时时钟模块中的BCD 寄存器,以显示秒,分钟,小时,日期,日,月和年。CPU 必须分别在RTC 模块的BCDSEC, BCDMIN, BCDH
原创
332阅读
1评论
0点赞
发布博客于 4 年前

数据结构==二叉树(链表实现)

链表实现二叉树的原理其实和数组实现的原理大同小异,但是因为是链表的缘故,所以操作的灵活性要比数组更加好,难度也比数组更高。链表实现二叉树,多了一个很关键的东西,那就是遍历的方法:前序遍历、中序遍历和后序遍历。课程要求:完成树的基本操作    1、树的创建和销毁    2、树中结点的搜索    3、树中结点的添加和删除    4、树中结点的遍历    Tree();  
原创
437阅读
0评论
0点赞
发布博客于 4 年前

数据结构==二叉树(数组实现)

二叉树的定义  二叉树(binary tree)由结点的有限集合构成,这个有限集合或者为空集(empty),或者为由一个根结点(root)及两棵互不相交、分别称作这个根的左子树(left subtree)和右子树(right subtree)的二叉树组成的集合。二叉树的五种基本形态二叉树相关术语p二叉树是由唯一的起始结点引出的结点集合。这个起始结点称
原创
381阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--虚函数

一、虚函数是这么实现的解析:  简单的说,虚函数是通过虚函数表实现的,那么什么是虚函数表呢?  事实上,如果一个类中含有虚函数表,则系统会为这个类分配一个指针成员指向一张虚函数表(vtbl),表中每一项指向一个虚函数的地址,实际上就是一个函数指针的数组。为了说明虚函数表,请看程序:class Parent{public: virtual void foo1() {} vir
原创
246阅读
0评论
1点赞
发布博客于 4 年前

c/c++整理--私有继承

一、私有继承有什么作用#include using namespace std;class Person{public: void eat() { cout<<"Person eat"<<endl; }};class Student : private Person //私有继承{public: void study() { cout << "Student Stu
原创
229阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451之定时器

S3C2451有 5 个 16 位定时器。其中定时器 0、1、2 和 3 具有脉宽调制(PWM)功能。定时器 4 是一个无输出引脚的内部定时器。定时器 0 还包含用于大电流驱动的死区发生器。  定时器 0 和 1 共用一个 8 位预分频器,定时器 2、3 和 4 共用另外的 8 位预分频器。每个定时器都有一个可以生成 5 种不同分频信号(1/2,1/4,1/8,1/16 和 TCLK)的时钟分
原创
432阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--c++继承

一、c++继承关系理解请考虑下面标记为A~J的语句在编译时可能出现的情况,如果能够成功编译,请记为“RIGHT”,否则即为“ERROR”#include using namespace std;class Parent{private: int m_nPrt;protected: int m_nPtd;public: int m_nPub;public: Pare
原创
210阅读
0评论
0点赞
发布博客于 4 年前

一步步教你使用云端服务器yeelink远程监控

本文转自:http://home.eeworld.com.cn/my/space-uid-487728-blogid-236541.html随着物联网逐渐进入我们的生活,我们需要随时随地查看远端的设备运行状态及对设备进行控制,Yeelink为我们提供了一个很好的云端服务器平台,设备通过网络连接到Yeelink服务器,上传本地检测数据,电脑或手机通过手机访问即可看到设备数据,网上也有
转载
1581阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451之串口中断

S3C2451开发板除了可以使用上篇博文中提到的查询法,还可以使用其他的方式实现串口的发送和接收。中断法和DMA法就是典型的方法。  DMA(DIRECT MEMORY ACCESS)即直接存储器存取,是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。 要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大
原创
250阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--重载运算符

一、编写MyString类对于下面的类MyString,要求重载一些运算符后可以计算表达式a=b+c。其中,a、b、c都是类MyString的对象。请重载相应的运算符并编写程序测试。class MyString{ char* str;public: MyString(char* s) { str = new char(strlen(s)+1); strcpy(st
原创
398阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--函数重载

一、为什么C语言不支持函数重载而c++能支持什么是函数重载?为什么C语言不支持函数重载,而c++能支持函数重载?解析:  函数重载是用来描述同名函数具有相同或者相似的功能,但数据类型或者是参数不同的函数管理操作。在C语言里需要写两个不同名称的函数来进行区分。int add1(int a, int b){ return a+b;}float add2(float a, f
原创
254阅读
0评论
0点赞
发布博客于 4 年前

深层揭密extern "C"

1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有
转载
125阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451之串口UART

思考    如果只给你不限制个数的IO口,如何实现一个控制器给另外一个控制器传输一个数据(一组数据)?串口通信  是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。按传输方向分类:单工:任何时候数据只能朝一个方向传输半双工:数据可以向两个方
原创
263阅读
0评论
1点赞
发布博客于 4 年前

c/c++整理--静态成员和临时对象

一、看代码写结果——c++静态成员和临时对象#include using namespace std;class human{public: human() { human_num++; } static int human_num; ~human() { human_num--; print(); } void print() { cout<<"
原创
278阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451点亮LED

这段时间在学习ARM9嵌入式系统——Mini2451开发板,首先是硬件的学习,然后学习linux系统的移植,最后是linux驱动的学习。前段时间学了STM32F1,对ARM芯片有了一定的了解,感觉对S3C2451芯片的学习有很大的帮助,很多名词都是一样的,功能也是大同小异。  学习S3C2451和学习单片机、STM32是一样的方法,第一步先尝试点亮LED吧。点亮LED用了三种方法,①汇编语
原创
345阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——S3C2451嵌入式简介

嵌入式系统简介IEEE定义:  嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control, monitor, orassist the operation of equipment, machinery or plants)。  可以看出此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置一般定义:
原创
943阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--c++面向对象(6)

一、了解c++类各成员函数的关系写出下面代码的输出结果#include using namespace std;class A{ int num;public: A() { cout<<"Default constructor"<<endl; } ~A() { cout<<"Desconstructor"<<endl; cout<<num<<endl;
原创
397阅读
0评论
0点赞
发布博客于 4 年前

c#设计模式==外观模式

外观模式,是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。  不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶叶、茶具和开水,如图1(A)所示,而去茶馆喝茶,最简单的方式就是跟茶馆服务员说想要一杯什么样的茶,是铁观音、碧螺春还是西湖龙
原创
471阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--复制构造函数和深复制及浅复制

一、复制构造函数是什么?什么是深复制和浅复制?什么是复制构造函数  先来说明什么是复制构造函数,以及它被调用的场合。  复制构造函数是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构件及初始化。  如果在类中没有显示地声明一个复制构造函数,那么编译器会私下里制定一个函数来进行对象之间的位复制。这个隐含的复制构造函数简单地关联了所有的类成员。  在c++中,下
原创
216阅读
0评论
0点赞
发布博客于 4 年前

c#设计模式==代理模式

代理模式,为其他对象提供一种代理以控制对这个对象的访问。代理模式在很多情况下都非常有用,特别是你想强行控制一个对象的时候,比如:延迟加载,监视状态变更的方法等等 1、“增加一层间接层”是软件系统中对许多负责问题的一种常见解决方法。在面向对象系统中,直接使用某些对象会带来很多问题,  作为间接层的proxy对象便是解决这一问题的常用手段。2、具体proxy设计模式的实现方法、
原创
157阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--类String的构造函数、析构函数和赋值函数

类string的原型class string{public: string(const char* str = NULL); //普通构造函数 string(const string &other); //复制构造函数 ~string(void); //析构函数 string & operater = (const string &other); //赋值函数pri
原创
258阅读
0评论
0点赞
发布博客于 4 年前

VMWare虚拟机Bridged类型网卡ping不通的原因和解决办法

VMWare虚拟机下 Bridged类型网卡 可以使虚拟机和主机处于同一物理网络内, 纯粹从网络连接上来讲, 此时的虚拟机和主机本身已经没有任何区别, 所以非常适合用于在虚拟机中基于网络对嵌入式系统的进行调试开发.但当主机上存在多个物理网卡或虚拟网卡时, 一旦其中的某个网卡发生断开或禁用/启用之类的操作, 则虚拟机中Bridged类型网卡的IP地址往往就会出现ping不通的现象, 一旦
转载
614阅读
0评论
0点赞
发布博客于 4 年前

nfs配置以及System Error No route to host解决

1、开启portmap和nfs服务     service portmap start     service nfs start2、将要共享的目录写到exports文件中 假设共享的目录为 /sharedisk/     vim /etc/exports     在exports文件中添加     /sharedisk    192.168.0.0
原创
3905阅读
1评论
0点赞
发布博客于 4 年前

c/c++整理--析构函数

c++中虚析构函数的作用是什么?  析构函数是为了在对象不被使用后释放它的资源,虚函数是为了实现多态。那么,把析构函数声明为virtual有什么作用呢? 请看下面代码:#include using namespace std;class Base{public: Base(){ } //Base的构造函数 ~Base() //Base的析构函数 { cout
原创
200阅读
0评论
1点赞
发布博客于 4 年前

c/c++整理--c++面向对象(5)

构造函数的使用以下代码中的输出语句为0吗?为什么?#include using namespace std;struct CLS{ int m_i; CLS(int i):m_i(i){ } CLS() { CLS(0); }};int main(){ CLS obj; cout<<obj.m_i<<endl; return 0;}在代码第11行,不
原创
245阅读
0评论
0点赞
发布博客于 4 年前

CentOS7下Samba的安装与配置

一、Samba简介    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资
转载
312阅读
0评论
0点赞
发布博客于 4 年前

HTML==小试牛刀

前段时间一直在做单片机的项目,再加上一个接一个的期末考试,一直没有时间去学习一些新的东西。Linux网络爬虫做了一半卡住了,感觉对HTML和HTTP那部分很不熟悉,只晓得http类型的url,对于href和其他类型的一窍不通,根本不知道怎么分析通过http获得的网页源码,怎么去提取其中的url。  于是,带着疑惑,我开始去HTML试试水了,看看HTML到底是一些什么东西,有什么神奇之处。去图书
原创
363阅读
0评论
0点赞
发布博客于 4 年前

HTML==网页编程基础知识

前 言HTML需要和CSS还有js一起用,才能提现强大。 所以,学了HTML。最好去学学CSS还有JS(JavaScript)☆静态页面和动态页面网站页面分为静态页面和动态页面两种 • 静态页面:有一个html页面文件保存在服务器上,浏览器要这个页面的时候服务器就把这个页面文件发给浏览器; • 动态页面:服务器上没有浏览者要看的页面,而是服务器动态生成的HTML
转载
733阅读
0评论
0点赞
发布博客于 4 年前

嵌入式系统学习——STM32之电阻型触摸屏

触摸屏分类 按照触摸屏的工作原理和传输信息的介质,把触摸屏分为四种,它们分别为①电阻式:定位准确,单点触摸。②电容感应式:支持多点触摸,价格偏贵。工业应用最广泛③红外线式:价格低廉,但其外框易碎,容易产生光干扰,曲面情况下失真。④表面声波式:解决各种缺点,但是屏幕表面如果有水滴和尘土会使触摸屏变的迟钝。四线电阻屏工作原理电阻屏的主要部分是一块与显示器表面配合
原创
4696阅读
0评论
2点赞
发布博客于 4 年前

嵌入式系统学习——STM32之电容型触摸屏

触摸屏  触摸屏(touch screen)又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应式装置。作为一种新型的电脑输入设备,可以用来取代传统的机械按键等输入设备。它是目前最简单、方便、自然的一种人机交互方式。主要应用于公共信息的查询、领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。  触摸屏本质上与液晶是分离的。触摸屏负责的是检测触摸点,液晶
原创
8945阅读
2评论
1点赞
发布博客于 4 年前

基于89C51和STM32F1实现2.4G无线射频智能家居

前段时间学51单片机的时候做了一个简单的智能家居,实现了三个传感器采集数据,于OLED显示。当时并没有深入的去研究,仅仅是51采集数据显示:单片机==简易智能家居OLED。这次扩展了一下这个项目。项目需求:  采集房间的温度、湿度、光照、烟雾等信息,51采集完数据在OLED上显示,采用2.4G射频模块NRF24L01,将51采集的数据发送给STM32,STM32接收完数据在TFT屏
原创
2855阅读
2评论
10点赞
发布博客于 4 年前

嵌入式系统学习——STM32之TFT汉字显示

常用汉字编码GB2312GB13000GBKBIG5(繁体)汉字显示原理汉字在液晶上的显示其实就是一些点的显示与不显示,这就相当于我们的笔一样,有笔经过的地方就画出来,没经过的地方就不画。所以要显示汉字,我们首先要知道汉字的点阵数据,这些数据可以由专门的软件来生成。只要知道了一个汉字点阵的生成方法,那么我们在程序里面就可以把这个点阵数据解析成一个汉字。
原创
6227阅读
0评论
3点赞
发布博客于 4 年前

嵌入式系统学习——STM32之FATFS文件系统

文件系统是什么?负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。即在磁盘上组织文件的方法。常用的文件系统:-FAT / FATFS-NTFS: 基于安全性的文件系统,是Windows NT所采用的独特的文件系统结构-CDFS:CDFS是大部分的光盘的文件系统-exFAT FATFS文件系统FATFS是一
原创
3198阅读
0评论
1点赞
发布博客于 4 年前

嵌入式系统学习——STM32之SD卡(下)

SDIO简介-SDIO寄存器SDIO电源控制寄存器(SDIO_POWER)        该寄存器只有最低2位(PWRCTRL[1:0])有效,其他都是保留位,STM32复位以后,PWRCTRL=00,处于掉电状态。所以,我们首先要给SDIO上电,设置这两个位为:11。SDIO时钟控制寄存器(SDIO_CLKCR)
原创
5584阅读
1评论
3点赞
发布博客于 4 年前

嵌入式系统学习——STM32之SD卡(上)

1、SDIO简介-什么是SDIO接口?
原创
3135阅读
0评论
1点赞
发布博客于 4 年前

Centos7升级gcc学习笔记

转载:Centos7升级gcc学习笔记概述最近在学习《深入应用C++11-代码与优化与工程级应用》,我的gcc版本是gcc-4.8.5是支持C++11的,但是我在作者的github上看了一些C++例子,其中有些是C++14的语法,我的gcc版本并不支持,之前安装了ubuntu16.04LTS,该系统的gcc版本是5.3.1这个是支持C++14的,所以我打算用ubuntu16.0
转载
2076阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--c++面向对象(4)

一、对静态数据成员的正确描述下列对静态数据成员的描述中,正确的是A、静态数据成员可以在类体中进行初始化B、静态数据成员不可以被类的对象调用C、静态数据成员不能收private控制符的作用D、静态数据成员可以直接用类名调用解析:A错误。静态数据成员必须在类外面初始化,以示与普通数据成员的区别B错误CD正确二、main函数执行前还会执行什么代码#in
原创
205阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--c++面向对象(3)

一、与全局对象相比,使用静态数据成员有什么优势优势:(1)静态数据成员没有进入程序的全局命名空间,因此不存在程序中其他全局命名冲突的可能性。(2)使用静态数据成员可以隐藏信息。因为静态数据成员可以是private成员,而全局对象不能二、有哪几种情况只能用intialization list,而不能用assignment  无论是在构造函数初始化列表中初始化成员,
原创
160阅读
0评论
0点赞
发布博客于 4 年前

HTTP协议及过程描述

HTTP 协议定义服务器端和客户端之间文件传输的沟通方式。目前HTTP协议的版本是Http1.1。RFC 2616描述了HTTP协议的具体信息。 这个协议已经成为浏览器和Web站点之间的标准。 当我上网的时候底层是如何进行交互的? 当访问者点击一个超链接的时候,将会给浏览器提交一个URL地址。通过这个URL地址,浏览器便知道去链接那个网站并去取得具体的页面文件(也可能是一张
转载
2190阅读
0评论
0点赞
发布博客于 4 年前

TCP协议三次握手过程分析

TCP协议三次握手过程分析TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(rese
转载
194阅读
0评论
0点赞
发布博客于 4 年前

c#设计模式==装饰模式

装饰模式,动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。抽象构件(People)角色:给出一个抽象接口,以规范准备接受附加责任的对象。装饰(Clothes)角色:持有一个构件(Component)对象的实例,并定义一个与抽象构件接口一致的接口。具体装饰(TShirt和Jeans)角色:负责给构件对象 ”贴上“附加的责任。装饰者模式的优缺
原创
228阅读
0评论
0点赞
发布博客于 4 年前

c/c++整理--c++面向对象(2)

一、看代码写结果——c++类成员的访问#include using namespace std;#define public private (1)class Animal{public: (2) void MakeNoise();};int main(){ Animal animal; animal.MakeNoise(); (3) return 0
原创
215阅读
0评论
0点赞
发布博客于 4 年前

LinuxC/C++网络爬虫(1)

网络爬虫(Web Crawler),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本,有时候又称网络蚂蚁,是搜索引擎(例如:Baidu、Google……)的重要组成部分。随着Internet的快速发展,网站数量剧增意味着后台数据量的剧增,在这样的情况下,用户能不能通过搜索引擎来及时地得到包含他要查找内容的网页,能不能实现定向搜索……,这些对传统的搜索引擎必然是个巨大的考验。以上这些都是网络
原创
2198阅读
0评论
4点赞
发布博客于 4 年前

QT学习之路十六(QWebView实现简易浏览器)

QtWebkit 模块提供了一个在Qt中使用web browser的engine,这使得我们在QT的应用程序中使用万维网上的内容变得很容易,而且对其网页内容的控制也可以通过native controls 实现  。  QtWebkit具有渲染HTML,XHTML和SVG 文档, 使用CSS排版,运行JavaScript等功能。在JavaScript 运行环境和Qt object model 直
原创
11770阅读
0评论
1点赞
发布博客于 4 年前

QT学习之路十五(进程通信——系统剪切板和共享内存)

在Linux中,进程之间存在多种通信方式:管道通信、信号通信、共享内存、信号量、消息队列和套接字。  以上这几种是经常在书本上或者百度上出现的方式,最近在做一个截屏小程序的时候,发现其实还有其他的方法,那就是系统剪切板。  截屏程序最关键的就是使用
原创
381阅读
0评论
0点赞
发布博客于 4 年前

qt共享内存

共享内存
zip
发布资源于 4 年前

截屏小程序

截屏
zip
发布资源于 4 年前