自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux C编程学习之路

1、Linux C高级编程,https://blog.csdn.net/wqx521/category_6142217.html

2021-12-23 14:49:44 896

转载 多个c/c++动态库函数同名冲突解决方法

最近某个程序需要调用多个动态库,但是不同的动态库中使用了功能不同的同名函数,导致调用出现偏差,可参考以下解决办法。样例假设有动态库libFuncA.so和libFuncB.so,他们的内部实现分别为:/*func_A.c*/#include<stdio.h>//内部函数int sayHi(){ printf("Hi,this is AAAAA\n"); return 0;}//外部调用函数int sayOut(){ sayHi();

2021-12-23 11:27:23 6470 1

转载 UML类图

平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:一、类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法。那么属性/方法名称前加的加号和减号是什么意思呢?它们表示了这个属性或方法的可见性,UML类图中表示可见性的符号有三种:

2021-12-22 14:36:25 320

原创 linux常用功能记录

1、环境变量设置1.1 linux查看和修改PATH环境变量的方法 查看PATH: echo $PATH 修改方法一:通过修改.bashrc文件:vim ~/.bashrc//在最后一行添上:export PATH=/usr/local/mongodb/bin:$PATH生效方法:(有以下两种)1、关闭当前终端窗口,重新打开一个新终端窗口就能生效2、输入“source ~/.bashrc”命令,立即生效有效期限:永久有效用户局限:仅对当前用户修改方法二:通过修改profile文件

2021-12-15 11:27:04 116

原创 软件数字签名

1、签名工具1.1 dos窗口工具,微软signtool.exe,具体使用请点击signtool1.2 带有界面的签名工具,signcode.exe2、证书相关文件.key : 私钥文件.pem : 证书文件.crt.pvk文件之间转换如下:pem转crt格式openssl x509 -outform der -in myserver.pem -out myserver.[der|crt]key转pvk格式pvk -in mycert.key -topvk -out mycer

2021-12-14 16:13:54 2564

原创 Makefile文件编写

1、qt 工程pro文件配置2、基于qmake生成Makefile文件修改############################################################################## Makefile for building: libVirtualCardChk.so.1.0.0# Generated by qmake (3.1) (Qt 5.12.9)# Project: ../VirtualCardChk/VirtualCardChk.pro

2021-12-08 17:32:16 853

原创 java日常使用经验总结

查看java安装版本C:\Users\snail>java -versionjava version "1.8.0_271"Java(TM) SE Runtime Environment (build 1.8.0_271-b09)Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)查看环境变量JAVA_HOMEC:\Users\snail>set JAVA_HOMEJAVA_HOME=D:\Pro..

2021-11-24 15:03:19 372

转载 检测VC环境是否存在

一、API接口通过MSI的API来查询 ,参见MSDN说明 MsiQueryProductStateINSTALLSTATE MsiQueryProductState( _In_ LPCTSTR szProduct );MsiQueryProductState的输入参数为产品ID,其返回值为产品安装状态,若返回值为INSTALLSTATE_DEFAULT则表示已安装。返回值及安装状态:安装状态返回整数值含义INSTALLSTATE_INVALIDARG-2无效的参数

2021-11-19 17:26:59 1257

转载 HTTP协议之multipart/form-data请求分析

1、form-data:​ 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。​2、x-www-fo

2021-08-20 13:32:56 2231

原创 API使用经验总结

1. GlobalAlloc与malloc区别解析:这两个函数的功能完全不同。GlobalAlloc在Win16中就已经有了,这个函数返回一个句柄,通过这个句柄,两个进程可以共享一块内存,DDE和剪贴板就是通过这个函数交换数据的;malloc是一个库函数,这个函数的功能,是通过内部调用了VirtualAlloc完成的,并且分配的内存不能共享。一般来说,涉及到DDE和剪贴版的内存操作使用GlobalAlloc,大多数程序内部的内存操作,使用malloc。如果要使用大块的共享内存,建议使用File Mappi

2021-07-28 14:39:02 168

原创 VS c++工程由编译动态链接库dll改为编译成静态链接库lib,问题记录总结

1、调用方出现文件中很多函数多重定义​ 解决办法:重命名函数,如果太多的话就很麻烦。如果这些重命名的函数功能都一样,那可以允许重定义,通过工程属性->链接器->命令行->其他选项,输入/FORCE:MULTIPLE2、编译成静态链接库时,原先代码中链接其他静态库好像失效了#pragma comment(lib,"libcurl.lib") #pragma comment(lib, "libeay32.lib")#pragma comment(lib, "ssle

2021-07-27 17:16:23 1720

转载 JNI 实战全面解析

简介项目决定移植一款C++开源项目到Android平台,开始对JNI深入研究。JNI是什么?JNI(Java Native Interface)意为JAVA本地调用,它允许Java代码和其他语言写的代码进行交互,简单的说,一种在Java虚拟机控制下执行代码的标准机制。NDK是什么?Android NDK(Native Development Kit )是一套工具集合,允许你用像C/C++语言那样实现应用程序的一部分。为什么要用NDK?1、安全性,java是半解释型语言,很容易被反汇编后拿到源代

2021-04-20 13:48:25 579 1

原创 【交叉编译】android模拟器验证交叉编译结果

准备环境1、android模拟器:夜神模拟器2、交叉编译后的程序和库:hello.so hellotest切换到工作目录1、cd /d D:\Work\AndroidProjectandroid adb操作流程登录android系统1、adb devices2、adb connect 127.0.0.1:620013、adb shell4、mkdir /data/tmp5、exit6、adb push hello.so /data/tmp/7、adb push hellotest

2021-04-16 13:50:02 181

转载 adb 乱码显示解决方法

乱码原因:Android中使用的是UTF-8字符,而CMD默认字符集是ANSI,中文环境下即为GBK,整体解决方法概括:查看当前编码更该编码,更改字体.1.乱码情况如下:2.退出adb环境,输入chcp查看活动代码页,也就是查看当前的字符集:输出为936对比代码页表,可知936对应的字符编码集为简体中文(GB2312).-------------------------------------代码页表-------------------------------------

2021-04-16 10:45:32 5525

转载 android studio如何调用linux下交叉编译的so库

背景:android studio上需要使用别的同事用linux下(c++写)编译好的的so库,注意不是用c++源码放在android studio上编译;实现原理:android studio实现JNI规范的接口,再用这套接口去调用linux下编好的so库,这个需要linux调用NDK中的交叉编译工具链进行交叉编译生成so库;步骤:1.NDK安装在linux环境上(ubuntu 14.04 64位系统)通常下载r17(包括该版本)以下的版本,因为r18以上的版本gcc/g++已被改动成clang(

2021-04-15 15:11:30 2154 1

转载 Android Studio简单断点调试

首先点击断点调试按钮运行App启动之后,会弹出如下图的提示框,不要管,几秒之后这个弹框会自动消失,然后App会成功运行。下面介绍一下断点调试的相关操作按钮对应的功能:按钮1的功能:从当前断点跳到下一个断点,如果当前断点为最后一个断点则点击后断点结束,App正常运行。按钮2(step over)的功能:一步步往下走,及按代码逻辑一行一行代码往下走。按钮3(step into)的功能:遇到方法就往方法里走。按钮4(force step into )的功能:所有方法看完整,即可以看到你所调用的所

2021-04-15 14:57:12 2508 1

转载 解决AndroidStudio 控制台编译输出中文乱码

背景在AndroidStudio中新建了一个Java Module,但是点击 Run ‘app’之后,Build Output 控制台输出的中文都是乱码,都是问号一样的字符google了很多方法,要么就是文不对题,要么就是各种抄,没有真正测试过!错误方案一File Encodings 改为UTF-8?没用!错误方案二build.gradle 添加如下代码? tasks.withType(JavaCompile) { options.encoding = "UTF-8"}没用

2021-04-15 14:38:17 248

转载 JNI Java与C的相互调用与基本操作

Java和Jni的类型对照表java 类型Native 类型符号属性字长booleanjboolean无符号8 位bytejbyte有符号8 位charjchar无符号16 位shortjshort有符号16 位intjint有符号32 位longjlong有符号64 位floatjfloat有符号32 位doublejdouble有符号64 位引用类型对照表java 类型N

2021-04-15 13:52:46 3296

原创 openssl、curl编译过程记录

1.linux系统切换管理员命令:centos系统: su;ubuntu系统:sudo -sopenssl库编译步骤1…/config -fPIC no-asm no-shared --prefix=/home/snail/Work/thirdLib/static/curl_ssl/src/build --openssldir=/home/snail/Work/thirdLib/static/curl_ssl/src/openssl2.sudo make3.sudo make installcu

2020-12-23 14:43:22 240

原创 VS2015 IDE使用经验总结

VS2015工具栏缺少“多行缩进工具”:首先,选中需要缩进的行代码:1、增大缩进:“Tab”键2、减小缩进:“Shift”键 + “Tab”键

2020-08-18 15:41:03 423

原创 MarkDown工具使用经验总结

1.首行缩进  全角的空格:&emsp加分号2.换行  < br >

2020-05-28 15:56:12 196

转载 System32与SysWow64的区别

Wow!什么是Wow64今天有个同事,被SysWow64搞晕了。这里简单介绍一下。64位的Windows并不是简单地把所有东西都编译成64位就万事大吉的。关于64位的CPU应该做成什么样子,Intel和AMD曾有各自的打算。AMD的回答直接了当:新的64位处理器,应该能在提高更高处理能力的同时,保持对32位应用程序的兼容性。而Intel则希望借此机会,把下一代的处理器,设计得更完美。于是,就有了AMD的x86-64(后被称为amd64)的处理器和Intel的IA-64(安腾)处理器。和amd64不一样的

2020-05-28 15:19:37 738

转载 各种图片编码格式详解(bmp,jpg,png)

做了几年有关图形、图像的工作,对图片格式算是小有经验,在此写成一文章总结下。虽然一开始并不想讲很理论的东西,但写完后发现几乎全是理论,细想一下关于图片格式的知识本身就是理论的东西,囧~~ 那就力求用最简单的方式将这些“理论”讲清楚吧。常见的图片格式有bmp, jpg(jpeg), png, gif, webp等。图像基本数据结构 要讲图片格式还先得从图像的基本数据结构说起。在计算机...

2019-04-11 19:44:19 50445 2

转载 C# 命名空间 小结

原文出处:https://blog.csdn.net/susan19890313/article/details/6833999 一、命名空间的作用1、命名空间将 与一个特定功能有关的 所有类型都分组到一起。2、命名空间有助于防止类型名称发生冲突。例如,两个都叫Program的类型只要在不同的命名空间中,就可以由编译器加以区分。二...

2019-03-21 09:20:19 890

转载 C# vs快捷键

相信.Net开发人员都想能够熟记各种VS快捷键以提高平时开发的效率,但苦于记忆能力太差而快捷键又特别多,特别烦,所以作罢!下面我将简单介绍一下我记忆VS快捷键的一些方法,希望对大家有所帮助。1、窗口快捷键 (大家有没有发现但凡跟窗口挂上钩的快捷键当中都有一个W,那是因为W代表Windows也就是窗口的意思)Ctrl+W,W: 浏览器窗口 (浏览橱窗用有道的翻译是windo...

2019-03-18 17:36:40 1430

转载 云计算、大数据和 AI三者关系

我今天要讲这三个话题,一个是云计算,一个大数据,一个人工智能,我为什么要讲这三个东西呢?因为这三个东西现在非常非常的火,它们之间好像互相有关系,一般谈云计算的时候也会提到大数据,谈人工智能的时候也会提大数据,谈人工智能的时候也会提云计算。所以说感觉他们又相辅相成不可分割,如果是非技术的人员来讲可能比较难理解说...

2019-03-18 17:27:01 1843

转载 C++ 调用C#工程的 dll , 互相调用方法

原文出处:https://blog.csdn.net/xiaominggunchuqu/article/details/79020541&amp;quot; 很多时候在项目中需要通过C++调用C#的dll,或者反过来条用。首先明白一个前提:C#是托管型代码。C++是非托管型代码。托管型代码的对象在托管堆上分配,创建的对象由虚拟机托管。(C# )非托管型代码对象有实际的内存地址...

2019-01-25 14:55:03 10857

转载 Visual Studio各版本工程文件之间的转换

由于VS版本比较多,低版本无法直接打开高版本的工程文件,通过对工程文件进行一些修改可以解决这些问题。通过修改Solution文件和Project文件,可以使低版本转换为高版本。例如将VS2015工程转换为VS2010工程。1.修改解决方案文件使用记事本打开.lsn文件:将Format Version 12.00改为11.00;将# Visual Studio 14改为2010;将...

2019-01-25 11:18:04 1062

转载 QListWidget与QTableWidget的使用以及样式设置

QListWidget和QTableWidget的使用和属性,QTableWidget和QListWidget样式表的设置,滚动条的样式设置一、QListWidget的使用//一、QListWidgetlist_widget = new QListWidget();//list_widget-&amp;amp;gt;resize(200,300);list_widget-&amp;amp;gt;setFixedWidt...

2019-01-24 15:52:41 2526

转载 C#与C++和C语言之间数据类型的对应

一、C#与C++数据类型的对应表&nbsp;Windows Data Type.NET Data TypeBOOL, BOOLEANBoolean or Int32BSTRStringBYTEByteCHARCharDOUBLEDoubleDWORDInt32 or UInt32FLOATSin...

2019-01-14 17:04:49 4479

转载 IO多路复用机制详解

&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp

2019-01-09 14:39:37 214

转载 Qt属性系统详解

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a

2018-11-27 15:14:49 3565

转载 C++ 高性能服务器网络框架设计细节

GitChat 作者:范蠡 原文:C++ 高性能服务器网络框架设计细节 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 【不要错过文末彩蛋】前言这篇文章我们将介绍服务器的开发,并从多个方面探究如何开发一款高性能高并发的服务器程序。需要注意的是一般大型服务器,其复杂程度在于...

2018-06-20 10:15:05 507

转载 总结http服务器框架

  HTTP又叫做超文本传输协议,现如今用的最多的版本是1.1版本。HTTP有如下的特点:    支持客户/服务器模式(C/S或B/S)    简单快速:基于请求和响应,请求只需传送请求方法和请求路径    灵活:HTTP允许传送人任意类型的数据对象。    无连接:这个无连接说的是应用层,应用层无连接,下层使用T...

2018-06-20 10:07:34 922

原创 操作系统及软件常用术语

一、操作系统Win7 ultimate        旗舰版 Win7 home basic     家庭基础版 Win7 home Premium 家庭高级版 Win7 business        商业版Win7 Professional    专业版知识点: 1、Windows 7 Ultimate和 Windows 7 Ultimat

2018-02-07 11:00:26 2149

转载 如何限制对象只能建立在堆上或者栈上

在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。        静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数。        动态建立类对象,是使用new运算符将对象建立在堆空间中。

2018-02-02 11:49:24 379

原创 Libevent源码分析

推荐博客:Libevent源码分析

2017-12-22 17:26:05 223

转载 QT Internal: 对象数据存储

声明:这篇文章所描述技术的环境:QT 4.4.0 Open Source Edition on Linux 这篇文章中的所有代码都只是示例性的代码,仅仅只是为了说明技术本身,所以只选取了最基本的代码片段,而抛弃了其它冗余的、不利于理解技术本身的代码。同时,这些代码片段也省略了一些常规的安全检查,完整性检查,等必要的工作。通常情况下没有实用价值,也无法直接编译通过。 本文为kudev.net

2017-12-21 17:20:19 965

转载 软件概要设计做什么,怎么做

一、软件设计一般流程: 1、先前的软件需求分析阶段,已经搞清楚了 “要解决什么问题”,并输出了《软件需要说明书》。这时一切都是理想。 2、现在进入概要设计阶段,重点说清楚“总体实现方案”,确定软件系统的总体布局,各个子模块的功能和模块间的关系,与外部系统的关系。有一些研究与论证性的内容。并输出《软件概要设计说明书》。这时一切都是概念。 3、最后进入详细设计阶段,重点说清楚“每个模块怎么做”,

2017-12-20 09:51:54 1053

转载 C和C++运行库 详解

原文出处:http://blog.csdn.net/ithzhang/article/details/20160009   在使用VC构建项目时,经常会遇到下面的链接错误:                     初学者面对这些错误常常不知所错:libcmt.lib是什么东西?msvcrtd.dll又是干吗用的?在使用VC++时我们也常常对下面的运行库

2017-12-19 16:50:35 3283

空空如也

空空如也

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

TA关注的人

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