c
文章平均质量分 88
p312011150
这个作者很懒,什么都没留下…
展开
-
听说安卓微信 7.0 不能抓 https?
前言最近公司有个小程序要提测,研发提测,体验,发现有个疑似bug的东西,想着抓包看下是不是接口数据的问题,结果问题出现了,按照以前的常规操作,打开fiddler,设置ip代理(https证书已经安装了),结果一看,fiddler居然这样显示:再看看手机,居然没数据?:一脸疑问号,一开始以为是自己问题,折腾半天,不对,之前都是没问题的话,同样的环境,同样的设备,有毒?...转载 2019-12-04 11:43:50 · 1099 阅读 · 0 评论 -
C语言的变量的内存分配
今晚看了人家写的一个关于C语言内存分配的帖子,发现真是自己想找的,于是乎就收藏了。。。先看一下两段代码:char* toStr(){ char *s = "abcdefghijkl"; return s;}int main(){ cout << toStr() << endl; return 0;}和char* t...转载 2019-11-13 10:13:16 · 610 阅读 · 0 评论 -
MFC ActiveX (ocx)控件的开发
MFC ActiveX (ocx)控件的开发标签: activex微软技术2016-10-24 09:11 2054人阅读 评论(1) 收藏 举报 分类:C++(3) MFC(2) 版权声明:本文为博主原创文章,未经博主允许不得转载。前言ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称转载 2017-06-27 15:06:48 · 578 阅读 · 0 评论 -
c语言之 malloc函数详解
一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free(转载 2017-12-11 10:58:37 · 4775 阅读 · 1 评论 -
C语言中的free函数
一、动态存储分配在数组一章中,曾介绍过数组的长度是预先定义好的,在整个程序中固定不变。C语言中不允许动态数组类型。例如:int n; scanf("%d",&n);int a[n];用变量表示长度,想对数组的大小作动态说明,这是错误的。但是在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题,用数组的办法很转载 2017-12-11 11:00:10 · 20403 阅读 · 11 评论 -
C语言scanf函数用法详细解释!!!
函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]);scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。其调用格式为: scanf("",);scanf()函数返回成功赋值的数据项数,出错时则转载 2017-12-21 19:20:03 · 14087 阅读 · 4 评论 -
完成端口IOCP详解
原文地址:https://www.cnblogs.com/talenth/p/7068392.html修改自: http://blog.csdn.net/piggyxp/article/details/6922277ps: 原作者很厉害了, 把一个iocp模型讲解的这么形象,不过在实践过程中发现一些细节说得有问题, 在文中标红指出, 另外删掉了原文中一些我认为有些多余的话 ...转载 2018-07-25 14:41:43 · 770 阅读 · 0 评论 -
VS编译缺少unistd.h头文件
许多在Linux下开发的C程序都需要头文件unistd.h,但VC中没有这个头文件,所以用VC编译总是报错。把下面的内容保存为unistd.h,可以解决这个问题。/** This file is part of the Mingw32 package.* unistd.h maps (roughly) to io.h*/#ifndef _UNISTD_H#define _UNIST...转载 2018-07-29 17:29:52 · 18078 阅读 · 3 评论 -
C语言itoa()函数和atoi()函数详解(整数转字符C实现)
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。1.int/float to string/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa():将无符号长整型值转换...转载 2018-07-29 18:42:53 · 84599 阅读 · 2 评论 -
c语言获取linux的CPU、内存、IO、磁盘、网速(本机编译通过)
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #define MAXBUFSIZE 1024 #define WAIT_SECOND 3 //暂停时间,单位为“秒” t...转载 2018-07-30 08:10:45 · 1283 阅读 · 0 评论 -
Linux下如何编译并运行C程序
GCC是Linux操作系统下一个非常重要的源代码编译工具,有着许多重要的选项,支持许多不同语言的编译,如C、C++、Ada、Fortran、Objective、Perl、Python、Ruby以及Java等,甚至Linux的许多内核和许多其他自由软件以及开放源码应用程序都是用C语言编写并经gcc编译而成的. 1.编译单个源文件 [例如]在屏幕上打印"Hello,Linux."...转载 2018-07-30 08:13:20 · 1949 阅读 · 0 评论 -
为什么要学习Linux及其学习路线
1.《Linux程序设计》- 靠它来入门,然后装一个linux体系,练习shell(party)和linuxC,把基础打牢;2. 《深入理解Linux内核》和《Linux内核设计与告竣》:后者我已经粗粗看过一遍,值得细看,前者必需尽快看完;3. 《Linux设备驱动设计》:必买必看,适用性强;4.《Advsome kind ofced Progri aming in Unix Envirem...转载 2018-08-03 18:14:58 · 4287 阅读 · 0 评论 -
int (*fn)(void *)
fn为一个指针类型的变量,此指针类型指向一个函数。该函数的原型类似这样:int function(void *);我们可以这样使用它:#include<stdio.h>int function(void *p){}main(){int(*fn)(void*)=function; //此处用&function也是可以的。fn("helloworld");// ...转载 2018-08-09 11:35:23 · 1231 阅读 · 0 评论 -
_beginThreadex的用法
建议创建线程应该用_beginThreadex,ripple里面就是用的这个。例子如下://sipvoiplink.hclass SIPVoIPLink{private: static unsigned __stdcall ReceivingThrd(void * pParam);}//sipvoiplink.cpp‘#include <...转载 2018-08-09 15:53:33 · 26589 阅读 · 1 评论 -
GPU的介绍 以及原理的分析
1 GPU是什么 如图1所示,这台PC机与普通PC机不同的是这里插了7张显卡,左下角是显卡,在中间的就是GPU芯片。显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的。 GPU计算能力非常强悍,举个例子:现在主流的i7处理器的浮点计算能力是主流的英伟达GPU处理器浮点计算能力的1/12。图1...转载 2018-08-10 13:20:17 · 534 阅读 · 0 评论 -
Win10下搭建Vs2017+CUDA开发环境
最近开始进行机器学习相关的学习,TensorFlow下CPU的计算速度实在是不理想,需要引入CUDA对于GPU的支持,由于已经有了的Vs2017的环境,在此基础上安装CUDA9.1版本碰到了一些小问题,在此跟大家分享其中的一些坑。 CUDA可以在NVIDIA官网根据自己的操作系统以及需要的版本进行下载,下载后在安装的过程中,建议使用默认安装路径,安装过程中如果出现错误,请不要着...转载 2018-08-10 23:33:11 · 17485 阅读 · 2 评论 -
为什么Erlang比C慢那么多倍?
Erlang 一直以慢“著称”,本文就来看看 Erlang 慢在什么地方,为什么比实现同样功能的 C 语言程序慢那么多倍。Erlang 作为一种虚拟机解释的语言,慢是当然的。不过本文从细节上分析为什么 Erlang 这种虚拟机语言会慢。本文从 shootout benchmark[注1]中选择了一个 Erlang 和 C 语言单核性能差距最大的例子——reverse complement[注2...转载 2018-08-08 10:59:52 · 1074 阅读 · 0 评论 -
进程如何分辨谁在kill()自己
少对于Linux、FreeBSD、Solaris、AIX这四种操作系统,有一种办法。不要安装传统sa_handler信号句柄,而是安装sa_sigaction信号句柄。细节请man sigaction并参照头文件加强理解。下面是一个可移植演示程序。-------------------------------------------------------------------...转载 2018-08-22 11:58:59 · 656 阅读 · 0 评论 -
关于sigaction 的 SIGPIPE 信号
我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试. 但是服务器总是莫名退出,没有core文件.最后问题确定为, 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的分析可以结合TCP的"四次握手"关闭. TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点...转载 2018-08-23 12:00:01 · 582 阅读 · 0 评论 -
Linux下gdb用法简单介绍
GDB是GNU开源组织发布的一个强大的UNIX下调试程序工具。或许各位比较喜欢那种图形界面方式的,像VC,BCB等IDE的调试,但如果你是在UNIX平台下作软件,你会发现GDB这个调试工具有比VC,BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你自定义的要求随心所欲的运行程序。...转载 2018-08-23 12:06:12 · 915 阅读 · 0 评论 -
SIGPIPE信号的产生以及处理
看了TCP的一些东西,知道服务器往以及关闭了的sockfd中写两次时,会产生SIGPIPE信号,如果不处理,默认会挂掉服务器弄个小例子测试一下:#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>#include <fc...转载 2018-08-23 12:15:37 · 886 阅读 · 0 评论 -
linux下网络程序遭遇SIGPIPE的解决(转)
问题描述:我的一个服务器程序, 在Windows下运行正常. 但当在Linux(centos 6.3)下,进行对端未开启的异常测试时,出现莫名退出 . 最后跟踪到是write调用导致退出. 用gdb执行程序, 退出时提示"Broken pipe". 问题分析:对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的...转载 2018-08-23 12:18:41 · 255 阅读 · 0 评论 -
QT5的程序打包发布(将QT5的工程项目打包成一个exe程序)
最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了。 首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑windows系统是win10专业版的。下面的打包教程,都是亲测可用的。但个人认为,即便是不同的windows操作系统,不同的QT版本,也应该是可以的。希望大家能及时反馈,我好及时更新。 ...转载 2018-08-27 17:35:37 · 380 阅读 · 0 评论 -
使用Qt Installer Framework制作安装包
步骤制作安装包的步骤:去官网下载Qt Installer Framework的安装包并安装(已经安装的请跳过这步) 使用windeployqt.exe集齐所需依赖 使用binarycreator.exe创建安装包具体操作流程:安装Qt Installer Framework下载地址:http://download.qt.io/official_releases/qt-inst...转载 2018-08-27 18:04:05 · 821 阅读 · 0 评论 -
#define与typedef
#define(宏定义)只是简单的字符串代换(原地扩展),它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了。typedef是为了增加可读性而为标识符另起的新名称(仅仅只是个别名),它的新名字具有一定的封装性,以致于新命名的标识符具有更易定义变量的功能,它是语言编译过程的一部分,但它并不实际分配内存空间。 一般都遵循#define定义“可读”的常量以及一些宏语句的任务,...转载 2018-08-30 23:19:45 · 4591 阅读 · 0 评论 -
extern "C" __stdcall对函数的使用声明
extern "C" __stdcall对函数的使用声明如下: 1 extern "C": 在当调用别人写的库时,注意库是使用何种编译器,若是C的,则你在用VC中的C++编译器调用时就得加#if defined(__cplusplus)extern "C" {#endif ..........声明被调用的函数名 #if defined(__...转载 2018-08-30 23:44:16 · 622 阅读 · 0 评论 -
C++ _stdcall和__stdcall的区别
今天写线程函数时,发现msdn中对ThreadProc的定义有要求:DWORD WINAPI ThreadProc(LPVOID lpParameter);不解为什么要用WINAPI宏定义,查了后发现下面的定义。于是乎需要区别__stdcall和__cdecl两者的区别; #define CALLBACK __stdcall#define WINAPI __stdcall#define WI...转载 2018-08-30 23:44:59 · 4244 阅读 · 0 评论 -
RSA算法原理(一)
原文地址:http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html如果你问我,哪一种算法最重要?我可能会回答"公钥加密算法"。因为它是计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡交易被破解的后果。进入正题之前,我先简单介绍一下,什么是"公钥加密算法"。一、一点历史197...转载 2018-08-30 23:55:47 · 643 阅读 · 0 评论 -
RSA算法原理(二)
上一次,我介绍了一些数论知识。有了这些知识,我们就可以看懂RSA算法。这是目前地球上最重要的加密算法。六、密钥生成的步骤我们通过一个例子,来理解RSA算法。假设爱丽丝要与鲍勃进行加密通信,她该怎么生成公钥和私钥呢?第一步,随机选择两个不相等的质数p和q。爱丽丝选择了61和53。(实际应用中,这两个质数越大,就越难破解。)第二步,计算p和q的乘积n。爱丽丝就把61...转载 2018-08-30 23:58:51 · 188 阅读 · 0 评论 -
VS2015使用scanf报错解决方案
版权声明:本文为博主原创文章,未经博主允许不得转载。原文:https://www.cnblogs.com/wangduo/p/5554465.html方法一:在程序最前面加#define _CRT_SECURE_NO_DEPRECATE; 方法二:在程序最前面加#define _CRT_SECURE_NO_WARNINGS; 方法三:在程序最前面加#pragma warni...转载 2018-08-20 23:02:59 · 349 阅读 · 0 评论 -
GDB调试工具入门
0 gdb介绍调试器GDB允许查看在执行一个程序时其内部时发生了什么,或者是程序奔溃(crashed)时它正在做什么。gdb通过以下四种事情来捕获某个行为的异常错误(bug): 运行程序,指定可能影响其动作的内容。 让程序在指定的情况下停止。 检查当程序停止时发生了什么。 改变程序中的内容,以便于更正一个错误,然后继续寻找下一个错误。gdb可用于调试C,C++,Fortran,...转载 2018-08-24 10:18:41 · 225 阅读 · 0 评论 -
为什么寄存器比内存快?
计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。同样都是晶体管存储设备,为什么寄存器比内存快呢?Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。下面就是我的简单翻译。原因一:距离不同距离不是主要因素,但是最好懂,所以放在最前面说。内存离CPU比较远,所以要耗费更长的时间读...转载 2018-08-24 10:31:49 · 355 阅读 · 0 评论 -
java jdb 命令行调试程序
日常的可以远程debug程序,线上程序查看线程堆栈和日志寻找线索。还不够的话可以使用jdb进行命令行debug程序。 (1)修改java启动脚本,把远程调试端口打开 JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y" (2)程序运行起来...转载 2018-08-24 10:46:45 · 815 阅读 · 0 评论 -
用GDB 调试Java程序
用GDB 调试Java程序 陈皓 http://blog.csdn.net/haoel 背景 想要使用GDB调试程序,就需要用GNU的编译器编译程序。如:用GCC编译的C/C++的程序,才能用GDB调试。对于Java程序也是一样的,如果想要用GDB调试,那么就需要用GNU的Java编译器——GCJ来编译Java程序。 目前,很多...转载 2018-08-24 11:01:47 · 1322 阅读 · 0 评论 -
Firefox 将迎大升级:采用全新插件API
很快Firefox又要迎来一次巨大的升级,本次更新需要插件开发者对插件进行修改,这样才能继续在新版Firefox上运行。以后Firefox将采用 了新的插件API,名叫WebExtensions,和Chrome与Opera的系统类似,这样跨多个浏览器进行插件开发也就容易多了。开发者需要对现有插件做出改动,才能确保在新版Firefox中可继续正常运行。首先自9月22日Firefox 41发布之日...转载 2018-08-21 14:04:40 · 659 阅读 · 0 评论 -
Abbott的复仇(Abbott's Revenge)
Abbott's RevengeTime limit: 3.000 seconds Abbott’s Revenge Abbott’s Revenge The 1999 World FinalsContest included a problem based on a “dicemaze.” At the time the problem was writ...转载 2018-08-28 17:34:24 · 255 阅读 · 0 评论 -
c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目 摄像头
原文地址:https://blog.csdn.net/longhuahaha/article/details/8556964第一步:编写一个ActiveX第二部:使用vfw.h开发摄像头拍照功能第三步:裁剪,转换图并上传1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。...转载 2018-08-31 11:16:22 · 325 阅读 · 0 评论 -
CEvent事件跟线程的使用
建立一个基于对话框的MFC工程,窗体上房一个按钮,创建一个CButton对象,在头文件中加入CEvent事件的头文件#include <afxmt.h> 和线程头文件 #include <process.h>,在对话框工程头 .h 文件中声明一个线程处理函数(类外声明)。UINT WINAPI ThreandOne(LPVOID pParam); CEve...转载 2018-08-31 12:08:37 · 623 阅读 · 0 评论 -
趁热打铁之---VS2010基于VFW的视频控件编写,实现预览、拍照功能
原文地址:https://blog.csdn.net/wu_tongyu/article/details/39641085一、VFW简介VFW(Video for Windows)是微软提供的数字视频开发包。VFW有许多函数,详细可参考http://blog.csdn.net/laolei1986/article/details/5733051下面介绍几个用到的函数:1、创建视...转载 2018-08-31 12:37:21 · 686 阅读 · 1 评论 -
windows下视频捕捉VFW和DirectShow
说起视频捕捉问题,先来看一下视频捕捉卡。根据使用的驱动程序的不同来分类,目前市场上大致有两种捕捉卡:VFW (Video for Windows)卡和WDM (Windows Driver Model)卡。前者是一种趋于废弃的驱动模型,而后者是前者的替代模型;WDM还支持更多新的特性,比如直接支持电视接收、视频会议、1394接口的设 备、桌面摄像机、多条视频流(Line-21或Closed-Cap...转载 2018-08-31 13:34:24 · 2299 阅读 · 0 评论