- 博客(135)
- 资源 (10)
- 收藏
- 关注
转载 二进制文件格式设计
你可以将计算机的地址,以 4 字节为单位,从 0 开始,将地址划分成一个个小格子,每个格式都可以放 4 字节,格子开始地址都是 4 的倍数。但假如这个整数并非 4 字节对齐,就跨越了格子边界,占据了两个格子,计算机就需要读取两个格子的信息,再将这个整数的值拼出来,这样读取就会慢了。文件头当中,会有一个数字作为文件格式的标识。这个软件保存数据输出文件 example.vecpaint,重新读取这个文件时,就首先判断文件对应位置,对应的魔数是否为 "vecpaint",假如是的话,就进一步读取解析数据;
2024-01-21 10:46:27
414
1
转载 ubuntu 16.04 An error occurred during the signature verification. The repository is not updated and
今天在使用:sudo apt-get update出现了下面的错误:W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used解决方法sudo apt-get clean cd /var/lib/apt sudo mv lists lists.old sudo mkdir -p
2022-01-14 22:36:45
2297
转载 Ubuntu16.04下安装gcc-7.5.0教程
目录一、安装包准备二、安装一、安装包准备本地gcc7.5.0版本所需安装包如下:gcc-7.5.0.tar.gzgmp-6.1.0.tar.bz2mpc-1.0.3.tar.gzmpfr-3.1.4.tar.bz2isl-0.16.1.tar.bz2这几个安装包在国外网站下载速度很慢,用中国科学技术大学镜像下载地址速度很快的:https://mirrors.ustc.edu.cn/gnu/用如下命令分别下载:wget https://mirrors.ustc.edu.cn/g
2022-01-14 19:03:55
3449
转载 Oracle VMVirtualBox 点击用户界面的【安装增强功能】没有用/按钮无效
——给不会使用的新手说的我安完虚拟机之后就感觉都不错唯一的缺点就是不能共享文件和粘贴板然后就去找了,说是要安装增强功能——下面提供步骤1,打开虚拟机界面,点击上面菜单栏的【设备】--【安装增强功能】点完之后,就会发现没有响应……【我是这样的,如果你们是其他情况就不用看这篇文章的下文了】2,这时候需要打开【虚拟机】里的【我的电脑】这时候会多一个驱动:打开,点击这个:【不是鼠标指针指着的,是那个被选中的EXE文件】安装的一系列过程:...
2021-12-30 12:26:19
3926
2
转载 Ubuntu adb 报错:no permissions (missing udev rules? user is in the plugdev group)
问题重现:确认: 1.Android设备已连接PC 2.Android设备已打开USB调试$:adb devicesList of devices attachedad5b342b no permissions (missing udev rules? user is in the plugdev group); see [http://developer.android.com/tools/device.html]显示已找到设备 但是没有权限解决办法:1.查看自己的...
2021-12-13 17:43:13
5042
1
转载 gcc编译参数-fPIC的一些问题
-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。gcc -shared -fPIC -o 1.so 1.c这里有一个-fPIC参数PIC就是position independent codePIC使.so文件的代码段变为真正意义上的共享如果不加-fPIC,则加载.
2021-11-20 17:45:09
1262
转载 Git中submodule的使用
背景面对比较复杂的项目,我们有可能会将代码根据功能拆解成不同的子模块。主项目对子模块有依赖关系,却又并不关心子模块的内部开发流程细节。这种情况下,通常不会把所有源码都放在同一个 Git 仓库中。有一种比较简单的方式,是在当前工作目录下,将子模块文件夹加入到.gitignore文件内容中,这样主项目就能够无视子项目的存在。这样做有一个弊端就是,使用主项目的人需要有一个先验知识:需要在当前目录下放置一份某版本的子模块代码。还有另外一种方式可供借鉴,可以使用 Git 的submodule功...
2021-11-02 17:38:43
2982
原创 undefined reference to symbol ‘dlclose@@GLIBC_2.2.5‘
编译可执行程序,链接glfw时报错信息undefined reference to symbol 'dlclose@@GLIBC_2.2.5',网上一番搜索,最终在stackoverflow上找到一条有用的解决办法点击跳转,截图如下提问:回复:
2021-10-19 10:42:03
3963
转载 在Linux中创建静态库.a和动态库.so
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。2. 动态函数库 这类库的名字一般是libxxx.so;相...
2021-06-11 09:26:34
463
转载 ubuntu:beyond compare 4 This license key has been revoked 解决办法
错误如图所示:解决办法:(1)先用find命令找到bcompare所在位置:sudo find /home/ -name '*bcompare'(2)进入 /home/whf/.config,删除/bcomapre文件夹注意一般.config为隐藏文件,通过 ctrl+h 可以显示:(3)cd /usr/lib/beyondcompare/(4)sudo sed -i "s/keexjEP3t4Mue23hrnuPtY4TdcsqNiJL-5174TsUdL...
2020-10-17 11:02:03
3472
3
转载 windows 获取本机(全部)IPv4、IPv6、MAC地址方法 (C/C++)
原文链接:https://www.cnblogs.com/lzpong/p/6137652.html---auth:lzpongwindows下获取IP地址的两种方法;一种可以获取IPv4和IPv6,但是需要WSAStartup;一种只能取到IPv4,但是不需要WSAStartup;如下:方法一:(可以获取IPv4和IPv6)#define _WINSOCK_DEPRECATED_NO_WARNINGS#include <Winsock2.h>#inclu..
2020-06-28 15:10:29
2473
2
原创 linux 下tar.xz创建和解压
创建tar.xz文件:1. tar cvf xxx.tar xxx/ #创建xxx.tar文件2.xz -z xxx.tar #将 xxx.tar压缩成为 xxx.tar.xz解压tar.xz文件:1. xz -d xxx.tar.xz #将 xxx.tar.xz解压成 xxx.tar2. tar xvf xxx.tar #解压.tar
2020-06-17 12:50:51
703
原创 android studio代码显示错乱
今天打开以前一个项目后,发现打开的代码都是错乱的,打开a文件有时显示的b,要么乱码。File -> Invalidate Cahes/ Restart后没有作用,后来网上查找通过删除文件夹C:\Users\'用户名'\.AndroidStudio3.5\system\caches得以解决,太坑了!...
2020-02-17 18:15:09
834
转载 原码, 反码, 补码 详解
作者:张子秋原文:http://www.cnblogs.com/zhangziqiu/本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助!一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真...
2019-08-29 10:49:43
385
5
转载 Makefile简易教程
本文部分内容引用:中文维基百科。一个简单的Makefile教程。Makefile简介在软件开发中,make通常被视为一种软件构建工具。该工具主要经由读取一种名为“makefile”或“Makefile”的文件来实现软件的自动化建构。它会通过一种被称之为“target”概念来检查相关文件之间的依赖关系,这种依赖关系的检查系统非常简单,主要通过对比文件的修改时间来实现。在大多数情况下,我们...
2019-06-05 16:58:15
175
原创 MySql服务无法启动
net start mysql系统出错发生系统错误1067进程意外终止mysqladmin -u root -p shutdown(可能需要输入密码)再执行net start mysql成功启动
2019-05-08 09:43:32
198
转载 camera基本知识
转自:https://blog.youkuaiyun.com/wang714818/article/details/78088424#commentBox一 Camera模组 大家都知道,手机背面的那个小小的孔,就叫摄像头。这个小孔幽幽的泛着光泽,深邃又迷人,如同一个含苞待放的小萝莉一样,这个小萝莉还是个傲娇娘,像零之使魔的614一样惹人怜爱,而且在小萝莉身体里面,不对,是在小孔的里...
2019-04-22 17:36:56
3228
转载 用三段 140 字符以内的代码生成一张 1024×1024 的图片
【原方】用三段 140 字符以内的代码生成一张 1024×1024 的图片【知乎】有没有一段代码,让你觉得人类的智慧也可以璀璨无比Kyle McCormick 在 StackExchange 上发起了一个叫做 Tweetable Mathematical Art 的比赛,参赛者需要用三条推这么长的代码来生成一张图片。具体地说,参赛者需要用 C++ 语言编写 RD 、 GR 、
2016-09-28 11:35:12
1046
原创 stl容器list部分实现
#include #include #include using namespace std;// 双向线性链表容器模板templateclass List {public: // 构造、析构、拷贝构造、拷贝赋值 List (void) : m_head (NULL), m_tail (NULL) {} ~List (void) { clear (); } List (
2016-09-27 21:53:35
488
转载 一位湖北大学的学生作品(和技术无关,转载于bbs.winzheng.com),实在太感人了
23年前,有个年轻的女子流落到我们村,蓬头垢面,见人就傻笑,且毫不避讳地当众小便。因此,村里的媳妇们常对著那女子吐口水,有的媳妇还上前踹几脚,叫她“滚远些”。可她就是不走,依然傻笑著在村里转悠。那时,我父亲已有35岁。他曾在石料场子干活被机器绞断了左手,又因家穷,一直没娶媳妇。奶奶见那女子还有几份姿色,就动了心思,决定收下她给我父亲做媳妇,等她给我 家“续上香火”后,再把她撵走。父亲虽老大不情
2016-09-26 22:50:34
1401
转载 UDP打洞原理
本文博客链接:http://blog.youkuaiyun.com/jdh99,作者:jdh,转载请注明.许多P2P软件比如SKYPE,QQ,电驴之类需要不同内网的两台机子进行通信,而路由器的NAT机制决定了内网访问外网容易,而外网访问内网困难,那如何才能做到这一点呢?有办法------打洞!具体实现方法需要一台服务器,现在假设两台内网PC,A和B想用端口40000通信,网关分
2016-09-08 23:01:10
1708
转载 GIS 中地理坐标和屏幕坐标的标准转换方法
在GIS中,当你拿到一个图层的地理坐标后,如果需要绘制到屏幕上,那么不可避免的需要在地理坐标和屏幕坐标之间进行转换,转换的方法相信每一个做GIS的都会有自己的实现方法,本文描述的是和ArcGIS、WMS、OpenLayers完全一致的坐标转换方法,当然这三个工具、标准、脚本也是采用的相同的方法;因为采用完全一致的坐标转换方法,因此在我自己实现的WMS服务程序中提供的含透明通道的图,可以完全
2016-03-14 19:54:06
1959
1
原创 JNI分线程在Android上绘图刷新过快容易崩溃的处理
用JNI调用Android控件在Android上绘图,过程如下:在Java代码先分线程,然后在Java线程中调用C代码,在C中再分线程绘图,每次开始绘图前先保证前一个线程结束。用全局变量BOOL g_bCancelThread;标记是否取消当前执行线程。pthread_tg_Draw_Tid;记录当前线程ID。 以下代码: int kill_rc = pt
2016-03-08 13:51:14
1376
转载 C++应用程序的编译过程
目前正在学习《C++ Templates》一书。在有了一个初步的概念以后,我觉得有必要了解一下模板的编译过程。而要了解模板的编译过程就必须从普通的C++应用程序开始。下面是我对C++应用程序的编译过程的理解。敬请指教!一:一般的C++应用程序的编译过程。 一般说来,C++应用程序的编译过程分为三个阶段。模板也是一样的。在cpp文件中展开include文件。将每个cpp文件
2015-11-07 16:49:48
634
转载 LIB和DLL的区别与使用
共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。共有两种链接方式:动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅
2015-11-07 16:46:19
536
转载 堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两
2015-11-07 16:40:47
482
转载 "undefined reference to" 问题解决方法
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(
2015-10-20 14:08:02
1086
转载 Android 学习笔记——利用JNI技术在Android中调用、调试C++代码
转自:http://cherishlc.iteye.com/blog/1756762在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在Android中会生成Linux系统下的.so文件(好吧,其实我基本没用过Linux)。 没写过JNI的可以看看我之前的博客(Windows下利用Visual Studio开发的过程):http:
2015-06-16 17:46:03
793
转载 socket实现大型文件传输
转自【http://blog.youkuaiyun.com/jin123wang/article/details/7081814/】最近需要做网络传输的项目,需要实现较大文件的传输。在网上收集了不少资料,但是各有各的做法,尤其是关于文件自动接收这一块不太清楚。 经过图书馆查阅后还是找到了一种解决办法,虽然做的不太专业,但是思路比较精简、清晰,也希望能给大家尤其是刚学习socket套接字的人一些启示。
2015-05-25 10:29:02
2006
转载 遇见C++ Lambda
转自【http://www.cnblogs.com/allenlooplee/archive/2012/07/03/2574119.html】生成随机数字 假设我们有一个vector容器,想用100以内的随机数初始化它,其中一个办法是通过generate函数生成,如代码1所示。generate函数接受三个参数,前两个参数指定容器的起止位置,后一个参数指定生成逻辑,这个逻辑
2015-05-19 15:37:53
701
转载 C++中的explicit关键字
在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性
2015-05-19 14:52:37
532
转载 Eclipse常用快捷键汇总
经常使用eclipse进行开发,不掌握快捷键步行啊,在此整理了一些快捷键,大家要灵活运用啊。。。(注:红色标出来的是经常使用到的快捷键,磨刀不误砍柴工啊。。。)Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+Shift+O 自动导入所需要的包(这个用的次数也相当多)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
2015-05-19 10:40:14
515
原创 ShellExecuteEx打开、关闭exe
//声明结构体SHELLEXECUTEINFO ShExecInfo;//打开void OpenExe() { ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS ; ShExecInfo.hwnd = NULL; ShExecInfo.lpVerb = N
2015-05-15 17:07:48
9316
转载 java中的IO整理
转自:http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面。照旧,文章依旧以例子为主,因为讲解内容的java书很多了,我觉的学以致用才是真。代码是写出
2015-05-14 14:53:37
553
原创 GDAL获取指定地理坐标像元值、获取指定地理范围影像数据
//GdalImage.h#include "StructDef.h"#include "gdal1.11.2/gdal_priv.h"#include "gdal1.11.2/gdal.h"//#ifdef __cplusplus//extern "C" {//#endifstruct stRasterInfo{ char fileName[255]; GDALData
2015-04-23 15:00:36
11031
6
原创 mfc 通过 MapWinGIS 控件读取 shp 文件
记录一下这两天努力的收获,刚来这个公司一周不到,这几天一直在看GIS相关的东西。首先调通了第一个android 通过 jni 调用 C/C++代码然后花了两天做了一个mfc 用 MapWinGIS.ocx 控件读取shp格式文件哎。。。回头看看,这么简单的东西竟然用了两天时间,简直太浪费时间了没办法,新手上路不容易呀!参考原文:http://blog.youkuaiyun.com/
2014-11-06 21:42:47
4527
原创 malloc,free的简单实现
首先简单说一下标准库中malloc实现原理: 标准库内部通过一个双向链表,管理在堆中动态分配的内存。 malloc函数分配内存时会附加若干(通常是12个)字节,存放控制信息。 该信息一旦被意外损坏,可能在后续操作中引发异常。mmap/munmap 底层不维护任何东西,只是返回一个首地址,所分配内存位于堆中。brk/sbrk 底层维护一个
2014-10-12 12:33:15
2000
原创 回溯法找迷宫最短路径
有一个二维数组,0表示路,-1表示墙,求其中任意两点的最短路径我们先看,怎么求一条路径:求两点路径是一个数据结构上的典型的迷宫问题,解决办法如下:从一点开始出发,向四个方向查找(上,右,下,左),每走一步,把走过的点的值+1,防止重复行走,并把走过的点压入堆栈(表示路径),如果遇到墙、或者已走过的点则不能前进,如果前方已经无路可走,则返回,路径退栈,这样递归调用,直到找到终点为止。
2014-09-21 22:46:49
8245
转载 不用临时变量交换两个数的值
就地交换两个数是比较经典而且基础的算法之一。 我们要交换两个数字,通常的做法就创建一个中间变量,然后进行循环赋值,比如说下面的代码:void Switch(int* p1, int* p2){ int tmp = *p1; *p1 = *p2; *p2 = tmp;}这种做法是最常见的一种交换两个数字的方法,但研究算法的人总是会提出比较诡异的
2014-09-19 22:25:15
1460
原创 快速排序函数模板
这段时间对STL比较痴迷,遂做了些许研究,今天把原来写过的快速排序算法用模板函数重新写了一下,把代码贴出来分享一下有两个版本,版本二可以传入比较器,自己定义排序规则快速排序算法思路:1)从序列中选出一个元素作为基准;2)重排序列,所有比基准小的元素位于基准左侧,比基准大的元素位于基准右侧,和基准相等的元素位于任意一侧,此过程称为分组;3)以递归的方式对小于基
2014-09-18 22:44:51
2639
VS2010番茄插件+安装方法.rar
2015-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人