随笔分类 -  C/C++

关于C和C++的一些编程技术
摘要:本文介绍在没有国产主机情况下,进行软件开发的两种替代方法:交叉编译和QEMU虚拟机。 阅读全文
posted @ 2020-06-12 13:37 qinwanlin 阅读(5248) 评论(0) 推荐(1)
摘要:这篇文章也是《使用错误代码对象进行C++错误处理》中提到的文章,不过干货不多,特别后半段写得不够清楚,或者我水平有限,硬着头皮翻译完了。以后除非遇到比较好的文章,否则还是不翻译了。 阅读全文
posted @ 2020-04-19 15:50 qinwanlin 阅读(303) 评论(0) 推荐(0)
摘要:函数返回值通常用于表函数是否在没有错误的情况下执行。但是,很难确保调用者适当地使用返回值。你很有可能听到过这样说:“我相信你,你不会犯这样的错误。”我在这里提出的想法,是受到几周前我们在项目中出现的一个错误的启发。它只出现在一个生产环境中,花了几天的时间才发现,它来自于一个特定环境的初始化例程的失败。实际上,调用此例程的代码没有测试其返回代码。 阅读全文
posted @ 2020-04-11 17:34 qinwanlin 阅读(452) 评论(0) 推荐(1)
摘要:我已经使用了本文描述的代码和机制近20年了,到目前为止,我还没有找到更好的方法来处理大型C++项目中的错误。最初的想法是从一篇文章(Dr Dobbs Journal 2000年)中摘录出来的。我已经添加了一些新内容进去,使它更容易在生产环境中使用。写这篇文章的冲动是最近发表在Andrzej的C++博客。正如我们在本文后面将看到的那样,使用错误代码对象可以产生更清晰、更易于维护的代码。 阅读全文
posted @ 2020-04-10 15:25 qinwanlin 阅读(3431) 评论(1) 推荐(2)
摘要:最近因项目需要,需要把一定数量的中等文件从开发板上传到电脑上,分别选择了FTP和TCP自定义协议两种方式进行传输,进行了简单的对比测试,故做如下记录。 阅读全文
posted @ 2018-11-15 14:10 qinwanlin 阅读(8113) 评论(0) 推荐(1)
摘要:最近想系统学习并使用一下boost的asio异步网络库,所以需要编译boost库使用,下面简单介绍如何编译。 阅读全文
posted @ 2018-06-04 09:14 qinwanlin 阅读(4290) 评论(0) 推荐(0)
摘要:C++11中引入了一个用于多线程操作的thread类,简单演示如何使用,以及如果进行多线程同步。 阅读全文
posted @ 2018-05-29 16:58 qinwanlin 阅读(20519) 评论(1) 推荐(0)
摘要:最近研发的产品出了点小bug,最后查到根本原因是,其中一个进程A使用基于FIFO的实时进程优先级,而另一个进程B是使用普通调度的进程优先级,而A和B两个进程是互相通信的,进程B会被饿死,而进程A也不能正常工作。分析问题过程中查找了一些资料,以下记录一些特别注意的点。 阅读全文
posted @ 2018-03-23 16:45 qinwanlin 阅读(18064) 评论(0) 推荐(1)
摘要:在进行web开发时,使用传统的CGI方式,在C/C++程序里面既要处理逻辑,也要处理页面显示内容,会比较混乱。可以通过模板引擎,使得逻辑与显示的分离。Google CTemplate就是其中一个开源的C++模板引擎。使用ctemplate不仅可以产生html,还可以生成xml,json等格式的内容。 阅读全文
posted @ 2017-09-19 14:27 qinwanlin 阅读(5593) 评论(0) 推荐(0)
摘要:前言 在阅读此文章前,建议先阅读我之前写的《libctemplate——C语言模块引擎简介及使用》,以便对这个库有一个初步的认识。通过对库的代码阅读,对库有了一定的认识,提练一些重要的知识点,以作记录。 原理 1、通过一系列接口函数建立字典树,属于MVC中的C,即controllor部分;接口在头文 阅读全文
posted @ 2017-09-19 14:11 qinwanlin 阅读(727) 评论(0) 推荐(0)
摘要:1、准备交叉编译环境 环境说明:Windows 7 64位 此过程需要: (1)Qt库开源代码,我使用的是5.7.0版本; (2)Perl语言环境5.12版本以上; (3)Python语言环境 2.7 版本以上; (4)Windows平台上的MinGW开发工具集(内含本地编译器gcc、g++ 4.9 阅读全文
posted @ 2017-06-07 14:22 qinwanlin 阅读(18591) 评论(8) 推荐(3)
摘要:关于单元测试的重要性、gtest的优缺点等就不说了。之前项目是没有做单元测试的,在VS的解决方案中,只有一个可执行的工程,其他的工程都是以DLL库的形式提供。本文只针对使用VS对DLL库进行单元测试,做一些记录。 阅读全文
posted @ 2017-03-18 16:06 qinwanlin 阅读(3148) 评论(0) 推荐(0)
摘要:html5支持使用websocket协议与服务器保持一个长连接,方便双方互相传输数据,而且服务器也能主动发送信息给客户端,而在这之前使用HTTP是很难做到的。下面介绍使用C++实现的websocket++的简单使用。 阅读全文
posted @ 2016-05-30 15:04 qinwanlin 阅读(9429) 评论(0) 推荐(0)
摘要:C++自定义异常处理 阅读全文
posted @ 2016-05-12 16:08 qinwanlin 阅读(4858) 评论(0) 推荐(0)
摘要:首先声明此libctemplate不是Google那个ctemplate。这个库是用C语言实现的,只有一个实现文件和一个头文件。Gooogl的ctemplate是C++实现的,和线程还扯上了关系。这两个库的具体代码还没看,从介绍及例子上看,libctemplate应该比Google的那个更轻量级,在嵌入式的web开发中可能更适合。 阅读全文
posted @ 2016-01-08 09:24 qinwanlin 阅读(3191) 评论(0) 推荐(1)
摘要:最近在做项目中发现一个Bug,直接把进程搞死,查了一下,居然是一个最不起眼的地方导致的,在此记录一下。先看下面代码#include #include using namespace std;int main(){ char aa[1024] = {0}; float f = 50.123... 阅读全文
posted @ 2014-07-04 20:11 qinwanlin 阅读(12086) 评论(0) 推荐(0)
摘要:定义在main之前调用的函数!有了这个特性可以改善c的模块化设计。 阅读全文
posted @ 2012-12-24 16:51 qinwanlin 阅读(488) 评论(2) 推荐(0)
摘要:gcc 直接编译cpp文件会报错:undefined reference to '__gxx_personality_v0' ,这时使用g++编译即可,也可使用gcc编译,但是需加编译选项-lstdc++ 例: gcc -lstdc++ -o test test.cpp对于具有像如下代码的c和cpp... 阅读全文
posted @ 2012-11-05 11:06 qinwanlin 阅读(1862) 评论(0) 推荐(0)