
C++
文章平均质量分 64
zerokkqq
这个作者很懒,什么都没留下…
展开
-
eclipse配置外部工具利用javah编译生成头文件
1. 点击eclipse工具栏外部工具按钮,打开配置外部工具2. 新建一个启动配置,起名为javah,按照下图配置好相应的参数Location: C:\Program Files\Java\jdk1.6.0_25\bin\javah.exeWorking Directory: ${project_loc}Arguments: -v转载 2016-11-22 10:02:45 · 384 阅读 · 0 评论 -
常用的C/C++代码格式优化工具有两个,一是老牌的indent,再一个就是astyle了。
常用的C/C++代码格式优化工具有两个,一是老牌的indent,再一个就是astyle了。astyle不但可以对C/C++进行格式优化,还可以处理Java和C#。版本一直在保持更新,很不容易,截止2011-12-02,已经升级到V2.02.1。通过命令““astyle -V”可以查询版本信息,最新版本的源代码和可执行文件可以在此处【下载】。 网络上已经有很多博客介绍过astyle,转载 2017-01-15 15:43:21 · 3241 阅读 · 0 评论 -
善用SourceMonitor+Astyle,让代码维护者不再骂娘
1. 什么样的代码让你想骂娘?什么样的代码最想让你骂娘,是这样的,代码层层嵌套或者是这样的密密麻麻,舍不得多一行免费空格又或者是那种又臭又长的代码呢?代码除了用来运行外,还有很重要的就是阅读,给自己阅读,或者给他人阅读,如果几个月后你自己都看不下去自己以前写的代码,呵呵…2. 我们需要漂亮的代码爱美之心,人皆有之。漂亮的代码,也是我们转载 2017-01-15 15:50:09 · 542 阅读 · 0 评论 -
Visual Studio开发必备插件推荐集合
1、Indent Guides功能:辅助线工具,主要是标识大括号之间的辅助线。明确层级关系效果图:Studio开发必备插件推荐集合" title="Visual Studio开发必备插件推荐集合" style="margin:0px; padding:0px; border:0px; list-style:none">2、AStyle Extension转载 2017-01-15 16:45:36 · 3906 阅读 · 0 评论 -
100行C代码终端打印树形结构
摘要: 这是一篇讲究套路的数据结构实战教学文,阅读需要约20分钟。讲究套路之前,先来回答三个问题。为什么要打印树形结构树形结构是算法里很常见的一种数据结构,从二叉树到多叉树,还有很多变种。很多涉及到算法的工作,就需要程序员自己手动实现树形结构,但出于结构本身复杂性,不太容易做对,需要一种调试工具来检测正确性。一般的调试手段无非就是加打印,GDB上断点,写测试用例等,但这些局部以转载 2017-02-08 09:35:59 · 2546 阅读 · 0 评论 -
(g_jvm)->AttachCurrentThread(&env, NULL) 后使用 (g_jvm)->DetachCurrentThread();程序报错
(g_jvm)->AttachCurrentThread(&env, NULL) 后使用 (g_jvm)->DetachCurrentThread();程序报错ERROR: detaching thread with interp frames (count=13) 在java线程中不能使用AttachCurrentThread、DetachCurrentThr转载 2017-03-01 23:07:08 · 2995 阅读 · 1 评论 -
MFC程序带参数运行实例
鱼老大需要让两子程序带参数运行,于是仔细找找了,原来MFC中自带有一个成员变量m_lpCmdLine保存有参数。以下是自己学习的心得,其中包含MFC源码介绍及DEMO: 1、该参数在MFC源码中的位置如下,打开AFXWIN.H,可以找到: [cpp] view plain copy print?class转载 2017-03-07 09:38:13 · 931 阅读 · 0 评论 -
使用 VS 2012 编译 GTest 遇到的编译错误
下载好gtest-1.6.0,然后解压到一个目录下,比如e:\gtest-1.6.0如果大家尝试着用VS2012 去编译GTest (e:\gtest-1.6.0\msvc\gtest.sln),可能会碰到下面的编译错误:\gtest\include\gtest\gtest-printers.h(550): error C2977: 'std::tuple' : too many te转载 2017-03-07 17:07:09 · 1247 阅读 · 0 评论 -
如何在arm平台上运行Jetty5(包含移植jamvm + classpath过程)(1)
Jetty虽然是Java编写的程序,可以跨平台使用,但需要java虚拟机来启动,而java虚拟机并不是跨平台的,要重新寻找一个能在linux系统中使用且占用空间尽可能小的java虚拟机。由于arm只提供最多52M的空间,所以不得不排除我们最常用的sun公司的jre,因为它的安装目录达到134M,大大超过可用空间,裁剪工作也不太容易。经过查找资料,基本确定以下几种方案: 1)转载 2017-03-07 21:44:04 · 1651 阅读 · 0 评论 -
QEvent - 一个跨平台线程安全的信号槽
QEvent - 一个跨平台线程安全的信号槽 ,使用方法如同Qt里的信号槽,全部代码量只有2百多行.核心代码只有几十行https://git.oschina.net/emb-hqj/QEvent转载 2017-03-22 19:14:41 · 1393 阅读 · 0 评论 -
linux/unix 段错误捕获(打印栈,addr2line使用)
原文地址:http://www.cnblogs.com/lidabo/p/4545644.htmlLinux的Core调试方法之二linux环境下段错误的产生原因及调试方法小结 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segm转载 2017-07-18 14:09:33 · 1075 阅读 · 0 评论 -
是否有去除c++多余头文件的工具
作者:洪坤安链接:https://www.zhihu.com/question/39796313/answer/90159932来源:知乎著作权归作者所有,转载请联系作者获得授权。2016-03-10工具已经上传到 GitHub - cxxclean/cxx-clean-include目前支持对visual studio单个c++项目作清理,以及清理整个文件转载 2017-01-15 11:15:57 · 3809 阅读 · 0 评论 -
vs2012 格式化代码和快速注释快捷键
vs2012 格式化代码和快速注释快捷键 实际操作,按住Ctrl键不放,先按K键,再按F键,其他操作是类似的。格式化全部代码 Ctrl+A+K+F格式化选中的代码 Ctrl+K+F注释代码 Ctrl+K+C(comment)反注释代码 Ctrl+K+Uhttp://blog.youkuaiyun.com/sxhloveh转载 2017-01-15 11:12:10 · 2846 阅读 · 1 评论 -
用JNI从C传递结构体到JAVA
直接上C的实现typedef struct Foo { int len; char name[100];} Foo_t;JNIEXPORT jint JNICALLJava_TestJNI_foo(JNIEnv *env, jobject obj, jobject fooObj) { Foo_t * bar = malloc(sizeof(转载 2016-11-22 16:27:53 · 749 阅读 · 0 评论 -
JNI中jstring 和char* 之间的转换方法
JNI中jstring 和char* 之间的转换方法博客分类: AndroidJNIAndroid脚本 最近在学习NDK下的opengl es2.0开发,看过很多demos都是直接用一串字符串把shader代码写死的。并没有用一个单独的shader脚本语言文件。glShaderSource()这个方法需要的shader脚本也是通过一个char** 传入的。转载 2016-11-22 16:58:38 · 1208 阅读 · 0 评论 -
JNI基础知识
JNI是在学习Android HAL时必须要面临一个知识点,如果你不了解它的机制,不了解它的使用方式,你会被本地代码绕的晕头转向,JNI作为一个中间语言的翻译官在运行Java代码的Android中有着重要的意义,这儿的内容比较多,也是最基本的,如果想彻底了解JNI的机制,请查看:http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/转载 2016-11-22 20:19:09 · 670 阅读 · 0 评论 -
让x86的android模拟器能模拟arm架构系统
网上介绍共计三种模拟器比较常用,分别是bluestacks、andy和Genymotion,前者支持ARM架构,中者支持远程控制,后者启动速度快,各有优缺点。如果要用genymotion模拟arm的话,还是放弃吧,直接用bluestacks。 houdini 是intel 研发的ARM binary translator解决Android x86 系统的兼容性问题转载 2016-11-23 09:28:55 · 11262 阅读 · 0 评论 -
设计模式---观察者模式(C++实现)
#include "stdafx.h"#include #include #include #include using namespace std;////// Generated by StarUML(tm) C++ Add-In//// @ Project : Untitled// @ File Name : INotifier.h//转载 2016-11-24 20:11:00 · 470 阅读 · 0 评论 -
c++显式加载dll并使用DLL的类
转载自:http://blog.163.com/tianjunqiang666@126/blog/static/8725911920121064573594/首先需要强调,当使用某个类时一般目的有二:实例化成对象或者继承它产生新类。对于前者,我们可以构造一个抽象类(java里的接口)来连接调用方和DLL。// Interface.h 公共文件//////转载 2016-11-25 17:41:41 · 2385 阅读 · 0 评论 -
sprintf.cpp
Go To English Version超过100万源码资源,1000万源码文件免费下载登录 注册关键字:搜资源搜代码分类平台分类源码/资料Windows编程Linux/Unix编程Internet/网络编程系统/网络安全通讯/手机编程游戏多媒体嵌入式/单片机编程图形图象压缩解压加密解密数值算法/人工智能Java编程转载 2016-12-24 21:49:25 · 631 阅读 · 0 评论 -
linux 下的 wchar_t
linux 下的 wchar_t1. 默认情况下,windows 下的 wchar_t 占两个字节的长度,而 linux 下的 wchar_t 占四个字节的长度,可以在使用 gcc 编译程序的时候再后面跟上 -fshort-wchar 来解决这个问题。2. linux 下 wchar_t* 字符串的输出问题 —— 没有解决。3. 如下程序,可输出宽字符,但是如果转载 2016-12-24 22:43:06 · 2534 阅读 · 0 评论 -
Windows WCHAR 到 Linux wchar_t 字符类型的转换
Windows WCHAR 到 Linux wchar_t 字符类型的转换标签: windowslinux字符乱码转换2015-05-14 12:05 679人阅读 评论(0) 收藏 举报 分类: Linux 编程(14) 版权声明:本文为博主原创文章,未经博主允许不得转载。1、简介 这几天涉及到一个小项目,Windows 和Linux通过TCP进行通信,但是他们之间的字转载 2016-12-25 10:09:34 · 574 阅读 · 0 评论 -
VS2012 代码格式化工具:AStyle和CoolFormat
转自http://blog.youkuaiyun.com/lhb_0531/article/details/8571395概述 作为程序员,代码规范的重要性毋庸置疑。每时每刻,都要牢记规范代码规则。自身坚持做好,是很不容易的。但是很多时候,需要修改别人的代码,比如改别人的bug。别人的代码风格可能跟自己不同,此时要尽量尊重并遵循别人的风格,做到该项目代码风格一转载 2017-01-15 11:08:18 · 2535 阅读 · 0 评论 -
一张图总结Google C++编程规范(Google C++ Style Guide)
Google C++ Style Guide是一份不错的C++编码指南,我制作了一张比较全面的说明图,可以在短时间内快速掌握规范的重点内容。不过规范毕竟是人定的,记得活学活用。看图前别忘了阅读下面三条重要建议:1 保持一致也非常重要,如果你在一个文件中新加的代码和原有代码风格相去甚远的话,这就破坏了文件本身的整体美观也影响阅读,所以要尽量避免。2 一些条目往往有例外,比如下面这些,转载 2017-07-19 13:56:55 · 539 阅读 · 0 评论 -
跨平台C、C++代码注意的事项
在我们的开发中,跨平台的需求越来越强烈,如何保持C/C++代码能在多个平台上编译,是一个比较值得研究的问题。关于跨平台的文章网上很多,跨平台的库网上也很多。那么我从自己的跨平台开发经验谈一谈自己的心得,希望对大家能够起到一定的作用。主要涉及到Windows和linux两个操作系统。1、 关于路径和头文件路径分隔符的问题在Windows中,正斜杠和反斜杠都可以,但是在Linux中,转载 2018-01-21 18:42:44 · 408 阅读 · 0 评论 -
浅谈C语言嵌入式系统编程注意事项
C语言嵌入式系统编程注意事项之背景篇 本文的讨论主要围绕以通用处理器为中心的协议处理模块进行,因为它更多地牵涉到具体的C语言编程技巧 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统转载 2018-01-21 18:44:38 · 716 阅读 · 0 评论 -
coverity下载 最新企业版离线安装包
版权归作者所有,任何形式转载请联系作者。作者:技术支持(来自豆瓣)来源:https://www.douban.com/note/658637476/下载地址 http://www.qschecker.comCOVERITY是被Gartner、Forrester、 IDC和 VDC权威机构评定为最领先的应用安全测试解决方案(超大规模分布式静态代码检查工具)。世界上几乎所有超大型软件企业都在使用(包括...转载 2018-03-26 10:53:29 · 11776 阅读 · 22 评论 -
Klocwork安装
简单介绍一下Klocwork在windows下的安装,操作系统是win7,Klocwork的版本是10.0。第一步:由于Klocwork的安装程序已十分成熟,所以在安装之前不需要什么准备共走。双击Klocwork的安装包,会出现下图的安装引导界面,点击Next按钮。第二步:下图是协议界面,点击Next按钮。第三步:选择Klocwork的安装目录,点击Next按钮第四步:下面是安装类型的选择,一般情...转载 2018-03-26 11:21:40 · 8659 阅读 · 1 评论 -
Android NDK开发扫盲及最新CMake的编译使用
1 NDK 简介在介绍 NDK 之前还是首推 Android 官方 NDK 文档。传送门官方文档分别从以下几个方面介绍了 NDKNDK 的基础概念如何编译 NDK 项目ABI 是什么以及不同 CPU 指令集支持哪些 ABI如何使用您自己及其他预建的库本节将会对文档进行总结和补充。所以建议先浏览一遍文档,或者看完本篇文章再回头看一遍文档。1.1 NDK 基础概念首先先用简单的话分别解释下 JNI、N...转载 2018-03-26 18:00:36 · 238 阅读 · 0 评论 -
怎么让VC6.0支持可变参数宏定义?
用不着重载()这样就行:#include <stdarg.h> //包含va_list#include <stdio.h> //包含vsprintf()#include <string.h>#define MyPrtLog CPrtLogFunc(__FILE__,__LINE__).outclass CPrtLogFunc { public: char...转载 2018-03-27 11:16:58 · 1696 阅读 · 1 评论 -
va_start,vsnprintf,va_end日记内存溢出解决!!!
vsprintf有三个参数。一个用於保存结果的字元缓冲区和一个格式字串。第三个参数是指向格式化参数阵列的指标。vsprintf(buffer,format,argptr); format:格式字符串;例子:int main(){ char buf[256] = { 0 }; double dno = 65280; sprintf(buf, "#%d%d%x", (int)(d...转载 2018-04-15 15:18:33 · 2512 阅读 · 0 评论 -
Android平台Native代码的崩溃捕获机制及实现
本文地址:http://blog.youkuaiyun.com/mba16c35/article/details/54178067思路主要来源于这篇文章:http://blog.httrack.com/blog/2013/08/23/catching-posix-signals-on-android/这篇文章的实现在这个地址代码但是还要对5.0以上做一些适配。比较出名的Google Breakpad也提供了跨...转载 2018-04-10 10:20:53 · 1464 阅读 · 0 评论 -
C++实现线程安全的单例模式
在某些应用环境下面,一个类只允许有一个实例,这就是著名的单例模式。单例模式分为懒汉模式,跟饿汉模式两种。首先给出饿汉模式的实现template <class T>class singleton{protected: singleton(){};private: singleton(const singleton&){};//禁止拷贝 singleto...转载 2018-04-11 18:58:51 · 519 阅读 · 0 评论 -
信号量与互斥锁
号量(semaphore)信号量是E.W.Dijkstra提出的方法,它使用一个整型变量来累计唤醒次数,供以后使用。一个信号量的取值可以为0,或者为正值。 信号量有两种操作:P(wait):检查其值是否大于0,若大于0,则将其值减1; 若等于0:则进程将睡眠。V(signal):信号量的值加1PV操作是原子操作:原子操作指一组相关联的操作要么都不间断地执行,要么都不执行。互斥量(mutex)如果不...转载 2018-04-11 20:14:31 · 522 阅读 · 0 评论 -
mingw无法编译多线程程序的问题及解决
mingw无法编译多线程程序的问题及解决在linux环境下,用gedit+gcc方式学习一段时间的c语言,发现自己越来越佩服linux的牛人了。居然不用IDE也能开发代码。我做不到,所以有回到了windows的怀抱。 mingw是windows版本的gnu c/c++工具集 主要包括编译器gcc,连接器make,调试器gdbEclipse是很好用的开发Java的IDE,CDT的全称是C/C++ D...转载 2018-04-11 23:10:15 · 870 阅读 · 1 评论 -
Valgrind内存泄漏工具的安装与使用 -- Linux
Valgrind内存泄漏检测工具是一个十分便捷的工具,可以很快速的检测出所写程序是否存在内存泄漏现象,这对于C/C++程序员显得尤为重要,因为不论你有多牛逼,也难以保证自己不会忘写一个delete或者free。一:安装步骤首先下载一个Valgrind安装包。1.解压安装包 zip格式用 uzip Valgrind.xx.zip,解压完成之后进入该文件夹。2.运行./autogen.sh设置环境在执...转载 2018-04-12 09:20:59 · 2276 阅读 · 0 评论 -
JNI官方规范中文版——在程序中集成JVM需要注意的JNI特征
我们已经讨论了JNI在写本地代码和向本地应用程序中集成JVM时的特征。本章接下来的部分分介绍其它的JNI特征。8.1 JNI和线程JVM可以做到在相同的地址空间内执行多个线程。由于多个线程可能会在同时共享资源,所以,增加了程序的复杂性。要完全理解本章的东西,你需要对多线程编程比较熟悉,知道怎么样在JAVA中用多线程访问共享资源。8.1.1 约束限制如果你的本地代码要运行在多个线程中,有一些约束条件...转载 2018-03-22 16:15:27 · 285 阅读 · 0 评论 -
linux下HttpGet、HttpPost的C++实现
前段时间,帮朋友实现linux C实现HTTP get 及POst请求,最原先打算使用libcurl库实现。但是考虑到和其他接口通信的情况,暂时使用C 来实现.代码可以自动解析URL连接,具体看下面代码:[cpp] view plain copy/*File : http.h *Auth : sjin *Date : 20141206转载 2018-01-24 10:00:26 · 943 阅读 · 0 评论 -
Linux下发送HTTP协议请求
在Linux系统中用C语言实现的HTTP协议的POST和GET请求,下面是代码实现,如果要测试需要搭建个后台服务器的环境,作者测试用的是PHP开发环境,具体搭建可参看另一篇文章:http://blog.youkuaiyun.com/hanbo622/article/details/51598648demo.c[cpp] view plain copy转载 2018-01-24 10:02:19 · 1824 阅读 · 0 评论 -
Keil中使用MicroLib,以及malloc
The C Standard Library (stdlib.h) contains a number of useful and common tools, including:string conversionpseudo-random sequence generationdynamic memory managementenvironmentsearching转载 2018-02-03 21:02:27 · 727 阅读 · 0 评论