c++开发
Cynhard85
逆水行舟不进则退
展开
-
RapidJSON 介绍
rapidjson官网 无需编译,直接包含头文件即可使用#include "rapidjson/document.h"#include "rapidjson/stringbuffer.h"#include "rapidjson/writer.h"#include <iostream>#include <string>void test1(){ // 解析json cons原创 2017-02-09 10:06:28 · 1486 阅读 · 0 评论 -
Jenkins 搭建C++持续集成环境
简介本文主要介绍如何通过 Jenkins 搭建 C++的持续集成环境。最后达到的效果是每天00:00 - 08:00之间构建、测试和打包一次工程。开发环境为 VS2015,测试工具为 CppUnit,打包工具为 Inno Setup。本例的 Jenkins 版本为 Jenkins2.60.1建立工程新建空白解决方案,命名为 Calculator。勾选 [新建 GIT 存储库]。建立开发项目新建控制台原创 2017-07-04 09:33:39 · 27539 阅读 · 1 评论 -
VS2015 编译和使用 gRPC
说明本例的环境为:WIN10 + VS2015 gRPC 的版本为: 1.4.2 protobuf 的版本为: 3.3.2准备工作本例使用 VS2015 进行编译,其他版本的 VS 没有试过,不过大致步骤应该差不多。确保环境变量 PATH 包含 git.exe 所在目录,因为我们要通过 git 下载 gRPC 源码。下载并安装 Active State Perl。本例下载的是64:Acti原创 2017-07-20 16:33:59 · 3783 阅读 · 2 评论 -
C++ 通过 JNI 调用 Java 代码
简介JNI 是 Java Native Interface 的缩写,它提供了若干的API实现了 Java 和其他语言(主要是 C&C++)的通信。本篇主要介绍通过 C++ 调用 Java 代码的一般方法。本例的开发环境为:WIN10 + VS2015 + JDK1.8.0_131首先我们需要建立一个 Java 项目,为了简单起见,这里没有用到 IDE 。建立 Java 项目建立如下的目录结构:JIN原创 2017-07-22 15:23:54 · 9710 阅读 · 5 评论 -
CEF3:Windows下用VS2015编译CEF3
下载并解压首先下载二进制发布包,下载地址为:CEF Automated Builds,本例下载的版本是:cef_binary_3.3029.1619.geeeb5d7_windows32.tar.bz2。注意可能需要代理才能下载。下载后解压到合适的目录。解压后的目录结构大致如下:[解压目录] |-include -- 头文件目录 |-Debug -- 编译好的CEF库,D原创 2017-08-26 09:52:04 · 11352 阅读 · 2 评论 -
C++开发Office插件:实现Word插件
简介本文以Word插件为例,介绍如何使用C++实现一个完整的Office插件。简单来说Office插件就是一个实现了IDTExtensibility2和IRibbonExtensibility两个接口的COM组件。IDTExtensibility2提供了Office插件接口,IRibbonExtensibility提供了Ribbon界面接口。下面详细介绍实现步骤。本例的开发环境为:Win8 + VS原创 2017-06-08 08:53:04 · 21170 阅读 · 14 评论 -
POCO: 日志的使用
入门#include "Poco/Logger.h"#include "Poco/AutoPtr.h"#include "Poco/ConsoleChannel.h"int main(){ /* 1.获取 root logger */ auto &logger = Poco::Logger::root(); /* 2.设置管道 */ Poco::Au原创 2017-07-21 13:55:01 · 3068 阅读 · 0 评论 -
CEF3:与 JavaScript 整合(一)
CEF 中的 JavaScriptCEF 利用 V8 JS 引擎来实现 JS。浏览器中的每一个 frame 都有自己的 JS 上下文,JS 只能在该上下文中执行。JS 只能在渲染进程中的 TID_RENDERER 线程中执行。有关 JS 回调的接口都包含在 CefRenderProcessHandler 中,因此我们要实现这个接口来对 JS 进行扩展。这个接口一般由 CefApp 实现原创 2017-08-30 17:40:46 · 3821 阅读 · 1 评论 -
CEF3:与 JavaScript 整合(三)—— IPC 通信
本篇介绍如何通过发送 IPC 消息实现 JS 回调函数的异步调用。实现方法渲染进程端: 1、实现 CefV8Handler 以注册 JS 回调函数 2、在 CefRenderProcessHandler::OnContextCreated() 中绑定函数到 window 对象 3、实现 CefRenderProcessHandler::OnProcessMessageReceived() 处理原创 2017-09-14 14:56:16 · 3962 阅读 · 0 评论 -
解决CMake错误:The CXX compiler identification is unknown
CMake 选择了 VS2015 进行配置,在执行 Configure 的时候,出现如下错误: The CXX compiler identification is unknown引起这个错误的原因是 CMake 找不到 C++ 的编译器,检查 VS 的安装目录是否有 cl.exe 以及 rc.exe 和 rcdll.dll。如果没有 cl.exe,那么可能是只安装了VS,没有安原创 2018-01-24 10:18:18 · 39364 阅读 · 6 评论 -
FFmpeg 利用 SDL2 播放视频
使用 SDL2 渲染屏幕的主要流程:Created with Raphaël 2.1.0初始化SDL创建窗口创建Renderer创建TextureSDL_UpdateTextureSDL_RenderCopySDL_RenderPresent示例:extern "C"{#include "libavcodec\avcodec.h"#include "libavformat\avformat.h原创 2017-06-12 17:56:01 · 1493 阅读 · 1 评论 -
FFmpeg 读取视频流并保存为BMP
extern "C"{#include "libavcodec\avcodec.h"#include "libavformat\avformat.h"#include "libswscale\swscale.h"#include "libavutil\imgutils.h"}#include #include #include void SaveFrame(AVFrame原创 2017-06-12 12:21:15 · 8130 阅读 · 2 评论 -
VS2013编译FFmpeg
下载 FFmpeg 源码下载 MinGW Installer,安装后点击运行,勾选以下几项:mingw-developer-toolkitmingw32-basemingw32-gcc-g++msys-base然后在 Installation 菜单下点击 Apply Changes。将 [MinGW安装目录]\bin 和 [MinGW安装目录]\msys\1.0\bin 加入环境变量,[Mi原创 2017-06-10 14:38:18 · 580 阅读 · 0 评论 -
PCRE 简介
PCRE简介原创 2017-03-09 14:55:31 · 10254 阅读 · 0 评论 -
关于 manifest authoring error c1010001
manifest authoring error c1010001原创 2017-03-31 15:13:53 · 5473 阅读 · 1 评论 -
C++11 Range for Statement
基本形式可用作expression的类型。使用方法和注意事项访问 改变自建类型与forforeach替代深度解析原创 2017-05-15 09:02:43 · 600 阅读 · 0 评论 -
C++11 Scoped Enumeration
本文从C++98枚举存在的问题入手,逐步分析C++11枚举存在的理由。并介绍了C++11对C++98枚举的扩展。最后以C++11枚举类型的改进做结尾。原创 2017-05-12 14:40:57 · 813 阅读 · 0 评论 -
C++11/14/17 nullptr
nullptr的引入什么是nullptr呢?为什么要引入nullptr呢?任何事物的产生都有其缘由和意义,nullptr也不例外。一切还得从0开始说。C++98中的0即表示整数字面值0,又表示指针的0值:class Foo{public: void bar() {}};int *p = 0; // 0表示普通指针的0值void (Foo::*pBar)() =原创 2017-05-16 09:30:29 · 1159 阅读 · 0 评论 -
计算文件MD5 (C++)
文件MD5算法原创 2017-03-06 11:29:28 · 11570 阅读 · 7 评论 -
libcurl 介绍
curl 使用本文主要介绍 curl 的编程步骤。 curl 是利用 URL 语法在命令行方式下工作的开源文件传输工具。 curl 编程指南里详细介绍了 curl 的用法。 可以下载 curl 使用的 PDF 文档#include "curl/curl.h"#include <fstream>// 写入的回调函数size_t write_data(void *buffer, size_t原创 2017-02-08 10:01:18 · 1165 阅读 · 0 评论 -
C++11/14/17 auto & decltype
C9803中的autoC11中的auto与decltypeauto使用和注意事项类型推导规则decltype使用和注意事项C14中的auto与decltypeC17中的auto与decltype原创 2017-05-22 08:57:04 · 1840 阅读 · 1 评论 -
CppUnit 入门
CppUnit 是一个基于 LGPL 的开源项目,最初版本移植自 JUnit,是一个非常优秀的开源测试框架。CppUnit 和 JUnit 一样主要思想来源于极限编程(XProgramming)。主要功能就是对单元测试进行管理,并可进行自动化测试。本文主要介绍如何利用 CppUnit 进行单元测试。原创 2017-07-01 09:35:38 · 5283 阅读 · 2 评论 -
图片缩放并设置dpi
这几天遇到个需求,要求缩放图片,但是不能改变图片的dpi,用 opencv 不行,于是在网上找,但是找了很久没有找到相关的信息,只有一篇帖子说使用 Gdiplus 可以满足这个需求,遂研究了一下 Gdiplus 的接口,终于找到了 Gdiplus::Bitmap::SetResolution 这个方法,新技能 Get!完整的代码如下:#pragma comment(lib, "Gdiplu...原创 2018-07-31 14:43:04 · 5235 阅读 · 0 评论