
C/C++
文章平均质量分 65
byxdaz
十年以上C/VC++开发经验。熟悉网络编程、数据库编程、数字图像处理与识别,熟悉软件工程和项目管理,熟悉linux C/C++开发。
展开
-
uWebSockets开发入门
基于 Boost.Asio 的高性能库,支持 HTTP/WebSocket,属于 Boost 官方库的一部分,稳定且跨平台。:高性能服务器库,支持 WebSocket 和 HTTP,底层基于 libuv(Node.js 的异步 I/O 库)。:纯头文件库(header-only),基于 C++11,不依赖 Boost,支持 RFC-6455 协议。:Poco C++ 库的一部分,提供完整的网络功能(包括 WebSocket),适合企业级应用。:简单易用的跨平台库,支持 SSL/TLS 和二进制数据传输。原创 2025-03-28 17:56:42 · 1212 阅读 · 0 评论 -
std::this_thread::sleep_for休眠函数设计缺陷
std::this_thread::sleep_for 调整系统时间 卡住问题原创 2024-08-02 10:11:30 · 1383 阅读 · 0 评论 -
libiconv库实现unicode/utf-8等之间转换
/此函数从inbuf中读取字符,转换后输出到outbuf中,inbytesleft用以记录还未转换的字符数,libiconv是一个基于GNU协议的开源库,主要是解决多语言编码处理转换等应用问题。//此函数说明将要进行哪两种编码的转换,tocode是目标编码,fromcode是原编码,//outbytesleft用以记录输出缓冲的剩余空间。//该函数返回一个转换句柄,供以下两个函数使用。下面是一个简单的windows示例代码。//此函数用于关闭转换句柄,释放资源。下面是一个简单的linux示例代码。原创 2024-04-12 13:47:13 · 791 阅读 · 0 评论 -
c++标准库中unicode/utf-8等之间转换
在这个示例中,我们首先创建了一个 UTF-16 编码的 std::wstring 字符串 utf16_string,然后使用 std::wstring_convert 进行 UTF-16 到 UTF-8 的转换,得到了 UTF-8 编码的字符串 utf8_string。一个常见的替代方案是使用 std::wstring_convert 和 std::codecvt_utf8 或 std::codecvt_utf16 类来执行 UTF-8 或 UTF-16 编码的转换。下面是一个简单的示例代码。原创 2024-04-12 13:30:58 · 3943 阅读 · 0 评论 -
avro c++编译与使用
Avro 是 Hadoop 中的一个子项目,也是一个数据序列化系统,其数据最终以二进制格式,采用行式存储的方式进行存储。Avro提供了:1)、丰富的数据结构。2)、可压缩、快速的二进制数据格式。3)、一个用来存储持久化数据的容器文件。4)、远程过程调用。5)、与动态语言的简单集成,代码生成不需要读取或写入数据文件,也不需要使用或实现 RPC 协议。代码生成是一种可选的优化,只值得在静态类型语言中实现。原创 2024-04-07 23:14:08 · 1601 阅读 · 0 评论 -
ShellExecuteEx使用方法与常用实例
一、ShellExecuteEx使用 ShellExecuteEx 打开文件或执行程序可以使用 ShellExecuteEx 打开文件或执行程序,与 ShellExecute 比较,ShellExecuteEx 提供了更多的控制。fMask 用于指定结构成员的内容和有效性,可为下列值的组合:SEE_MASK_DEFAULT (0)默认SEE_MASK_CLASSNAME 使用 lpClass 参数,如果 SEE_MASK_CLASSKEY 也有效,则用后者。原创 2023-04-22 00:25:33 · 3651 阅读 · 0 评论 -
Fastcopy介绍
一、介绍 Fastcopy一款文件复制软件,可以窗口型式运行,也可以在 DOS 下运行命令运行,此文主要讲解和解释 FastCopy 命令行型式运行的基础命令。源于日本的高效文件复制粘贴加速软件。在2004年发布第一版,更新至今。支持拖曳操作,支持三种不同的 HDD 模式。支持通配符,支持任务管理/命令行。官网:https://fastcopy.jp/二、FastCopy 基本用法fastcopy.exe [/options] file1 file2 ... [/to=des...原创 2021-11-04 18:03:43 · 15506 阅读 · 2 评论 -
windows和Linux程序读取命令输出信息
linux中通过popen读取命令输出信息。要通过管道来完成的。首先用popen打开一个命令行的管道,然后通过fgets获得该管道传输的内容,也就是命令行运行的结果。window中 要用CreateProcessW函数来启动新的进程,以便执行cmd命令。一、windows程序读取命令输出信息void executeCMD(const char *cmd, char *result) { char buf_ps[1024]; char ps[1024]......原创 2020-08-09 12:08:50 · 1294 阅读 · 0 评论 -
ftp c++操作
一、FTP服务器常用的FTP服务器有:Server-U,Filezilla Server,IIS。Server-U的特点是功能强大,但是需要收费。FileZilla Server是一种小巧、快速、可信赖的支持FTP以及SFTP的服务器端。它是开源的,并且具有很丰富的操作接口。IIS是微软自带的FTP服务器,但是配置和操作非常的复杂。二、FTP客户端常见FTP客户端工具:filezil...原创 2019-11-30 15:51:25 · 2590 阅读 · 0 评论 -
c++11新特性总结
std::unordered_map与std::map用法基本差不多,但STL在内部实现上有很大不同,std::map使用的数据结构为二叉树,而std::unordered_map内部是哈希表的实现方式,哈希map理论上查找效率为O(1)。std::thread为C++11的线程类,使用方法和boost接口一样,非常方便,同时,C++11的std::thread解决了boost::thread中构成参数限制的问题,我想着都是得益于C++11的可变参数的设计风格。时,NULL 只好被定义为 0。原创 2019-03-16 18:59:49 · 8362 阅读 · 1 评论 -
开源免费的C/C++网络库(c/c++ sockets library)
(1)ACE庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。http://www.cs.wustl.edu/~schmidt/ACE.html(2)AsioAsio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。开源、免费,支持跨平台。http://think-async.com/(3)POCOPOC...转载 2019-08-28 22:37:20 · 1046 阅读 · 0 评论 -
win进程崩溃弹出Microsoft Visual C++ Runtime Library的解决办法
很多软件通过设置自己的异常捕获函数,捕获未处理的异常,生成报告或者日志(例如生成mini-dump文件),达到Release版本下追踪Bug的目的。但是,到了VS2005(即VC8),Microsoft对CRT(C运行时库)的一些与安全相关的代码做了些改动,典型的,例如增加了对缓冲溢出的检查。新CRT版本在出现错误时强制把异常抛给默认的调试器(如果没有配置的话,默认是Dr.Wat...原创 2019-06-28 00:05:26 · 24854 阅读 · 1 评论 -
常见读写excel文件的库/类
读写EXCEL表格,有这几种方法:COM方式、ODBC方式、OLE方式、纯底层格式分析方式。 库/类 方式 功能 备注 basicexcel com方式 可读可写excel 开源,windows平台。 CSpre...原创 2018-10-31 11:03:18 · 2892 阅读 · 0 评论 -
xlslib生成excel文件
一、xlslib介绍C++用来操作Excel的方法很多,但是涉及到跨平台,同时又要对Excel的读写操作兼顾,而且免费的库,那应该是要用xlslib和libxls了。xlslib库只能写Excel文件,libxls库只能读Excel文件。另外libxl库功能强大,但是收费的。xlslib官网:http://xlslib.sourceforge.net下载:http://sourcefo...原创 2018-10-29 14:47:04 · 9327 阅读 · 5 评论 -
应用程序无法正常启动0xc000007b解决方法
0xc000007b——应用程序无法正常启动原因如下:1、操作系统system32或SysWOW64中与vc相关dll与vs开发工具中的dll文件不一致。2、缺乏dll。使用depends工具查看程序依赖那些dll。用depends工具查询缺少哪些dll或dll文件冲突。红色:有两种含义。一个是没有找到这个文件,下面会有这个提示Could not find the section that own...原创 2018-05-21 15:47:38 · 49325 阅读 · 2 评论 -
数据读取/写入——线型缓存区
数据的读取和写入管理,可以通过列表和环型列表来实现,文本使用线性列表来实现数据的读取和写入操作。原创 2017-02-13 14:49:23 · 2355 阅读 · 0 评论 -
STL学习小结
STL总结原创 2009-10-05 14:47:00 · 77433 阅读 · 17 评论 -
数据读取/写入——环型缓存区
环型缓存区原创 2017-02-13 15:21:29 · 3115 阅读 · 0 评论 -
轻量级web服务器mongoose
Mongoose是一个web服务器,通过提供一个web接口给它,它可以嵌入到现有的应用程序中去。Mongooseweb服务器的执行是自满足的,它不依赖于任何其他服务。如果你将它复制到任何目录并执行,它将将启动web服务并将当前目录作为主目录、端口号是8080。当然这些配置选项都可以通过配置文件mongoose.conf设置。Mongoose它完全开源和自由使用。它还具有如下特性原创 2016-08-27 16:46:04 · 12890 阅读 · 0 评论 -
面试资料一
1、return语句不可返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。例如 char * Func(void) { char str[] = “hello world”; // str的内存位于栈上 … return str; // 将导致错误原创 2007-07-16 16:05:00 · 2888 阅读 · 0 评论 -
命令行处理
命令行处理 两个进程之间进行事务出来时,可以通过命令行来处理。在这里介绍命令行处理知识。 在VC中可以通过GetCommandLine()函数得到命令行参数,然后根据得到字符串参数进行解析来处理。int _spawnl( int mode, const char *cmdname, const char *arg0, const char *arg1, ... c原创 2006-11-30 12:00:00 · 2429 阅读 · 0 评论 -
数值计算程序大放送-特征值和特征向量
数值计算程序大放送-特征值和特征向量////////////////////////////////////////////////////////////////约化对称矩阵为三对角对称矩阵//利用Householder变换将n阶实对称矩阵约化为对称三对角矩阵//a-长度为n*n的数组,存放n阶实对称矩阵//n-矩阵的阶数//q-长度为n*n的数组,返回时存放Householder变换矩阵/转载 2006-03-18 17:42:00 · 3598 阅读 · 0 评论 -
数值计算程序大放送-矩阵运算
数值计算程序大放送-矩阵运算////////////////////////////////////////////////////////////////实矩阵相乘//计算矩阵A(m*n)和B(n*k)的乘积,结果保存在C(m*k)中//a-长度为m*n的数组//b-长度为n*k的数组//c-长度为m*k的数组,存放结果void damul(double a[],double b[],int转载 2006-03-18 17:47:00 · 3548 阅读 · 3 评论 -
数值计算程序大放送-线性代数方程组
数值计算程序大放送-线性代数方程组选自>每个程序都加上了适当地注释,陆陆续续干了几个月才整理出来的啊。今天都给贴出来了#include "stdlib.h"#include "math.h"#include "stdio.h"// 全选主元高斯消去法//a-n*n 存放方程组的系数矩阵,返回时将被破坏//b-常数向量//x-返回方程组的解向量//n-存放方程组的阶数//返回0表转载 2006-03-18 17:39:00 · 2561 阅读 · 1 评论 -
数值计算程序大放送-特殊函数
选自>所有的函数声明部分////////////////////////////////////////////////////////////////功能:计算伽马(gamma)函数值,gamma函数积分区间为0到正无穷//描述:gamma[x]=Integrate[exp[-t]*t^(x-1),{t,0,∞}]//调用:double lagam(double x);/////////转载 2006-03-18 17:28:00 · 3505 阅读 · 0 评论 -
数值计算程序大放送-数学变换与滤波
数值计算程序大放送-数学变换与滤波////////////////////////////////////////////////////////////////傅里叶级数逼近//f-长度为2n+1的数组,存放[0,2Pi]上2n+1个等距点处的函数值//n-整型变量//a-长度为n+1的数组,返回时存放傅里叶级数系数ak//b-长度为n+1的数组,返回时存放傅里叶级数系数bkvoid kfo转载 2006-03-18 17:35:00 · 2766 阅读 · 1 评论 -
贪婪算法
贪婪算法虽然设计一个好的求解算法更像是一门艺术,而不像是技术,但仍然存在一些行之有效的能够用于解决许多问题的算法设计方法,你可以使用这些方法来设计算法,并观察这些算法是如何工作的。一般情况下,为了获得较好的性能,必须对算法进行细致的调整。但是在某些情况下,算法经过调整之后性能仍无法达到要求,这时就必须寻求另外的方法来求解该问题。本章首先引入最优化的概念,然后介绍一种直观的问题求解方法:贪婪算法。最转载 2006-03-18 18:02:00 · 7723 阅读 · 0 评论 -
面试资料二
C++/C试题 本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。 一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)提示:这里“零值”可以是0, 0.0 , FALSE转载 2007-07-16 16:10:00 · 2497 阅读 · 0 评论 -
#define用法
1.简单的define定义#define MAXTIME 1000一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反映的尤为突出。2.define的“函数定义”d原创 2007-09-07 15:47:00 · 2117 阅读 · 0 评论 -
值得推荐的C/C++框架和库
C/C++框架和库转载 2016-08-27 15:12:49 · 2562 阅读 · 0 评论 -
如何判断CPU是大端还是小端模式
如何判断CPU是大端还是小端模式http://blog.sina.com.cn/s/blog_66a61f310100i7m0.htmlMSB:Most Significant Bit ------- 最高有效位 LSB:Least Significant Bit ------- 最低有效位 大端模式(big-edian) big-endian:MSB存放在转载 2015-10-09 10:09:51 · 7015 阅读 · 0 评论 -
C++ 内存泄漏检测
C++ 内存泄漏检测原创 2011-04-27 14:54:00 · 4831 阅读 · 0 评论 -
面试资料四
数据结构与算法原创 2010-06-24 10:59:00 · 3769 阅读 · 0 评论 -
文件操作小结
文件操作在编程的过程中,文件的操作是一个经常用到的问题,在VC++中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:1、基于C的文件操作;2、基于C++的文件操作;3、基于WINAPI的文件操作;4、基于MFC库的文件操作。5、Unix/Linux文件操作一、基于C的文件操作clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #incl原创 2010-04-07 10:03:00 · 3283 阅读 · 1 评论 -
C++中的虚函数
C++中的虚函数(virtual function)原文出处:http://objects.nease.net/先看代码class A{public: void funPrint(){cout"funPrint of class A"endl;};};class B:public A{public: void funPrint(){cout"funPrint of class B"转载 2009-06-03 09:50:00 · 1672 阅读 · 1 评论 -
面试资料三
C++题目汇总 1.求下面函数的返回值(微软)int func(x){int countx = 0;while(x){countx ++;x = x&(x-1);}return countx;} 假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。2. 什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对转载 2009-07-17 23:54:00 · 2742 阅读 · 0 评论 -
windows系统错误代码大全
windows系统错误代码大全0000 操作已成功完成。0001 错误的函数。0002 系统找不到指定的文件。0003 系统找不到指定的路径。0004 系统无法打开文件。0005 拒绝访问。0006 句柄无效。0007 存储区控制块已损坏。0008 可用的存储区不足,无法执行该命令。0009 存储区控制块地址无效。0010 环境错误。0011 试图使用不正确的格式加载程序。00原创 2008-12-18 15:56:00 · 3461 阅读 · 0 评论 -
C++学习资源
1.结构大小 int *pi = new int[12];中的pi纯粹是个指针变量,它就是一个指针,在32位环境下占4个字节;而int ia[]={0, 1, 2};中的ia是个数组,虽然它的值是第一个元素的地址,但是它代表了整个这一个数组,数组中有三个元素,每个int类型的元素占4 个字节,共是12个字节,pi申请完内存后,是整个内存块的首地址,*pi代表的就是第一个元素,每原创 2005-11-02 10:08:00 · 3884 阅读 · 0 评论