C++
文章平均质量分 57
ssuqin001
特立独行
展开
-
python调用c++传递数组
受限于python性能劣势,一般耗cpu的操作(如:视频编解码),多采用c/c++编写。供python调用。本文正是基于python调用c/c++库遇到过得的问题,作的一些记录。需求我希望调用方传递bool值引用来影响c++函数的执行。问题python中的基本数据基本是不可变数据类型,不能作为引用变量传递解决方案采用数组,关键代码如下:Python:C++:...原创 2019-12-25 14:33:36 · 3468 阅读 · 0 评论 -
error LNK2026:模块对于 SAFESEH 映像是不安全的
VS2013遇到一个问题:"链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的"解决方法:1.打开该项目的“属性页”对话框。2.单击“链接器”文件夹。3.单击“命令行”属性页。4.将/SAFESEH:NO键入“附加选项”框中,然后点击应用。...转载 2019-12-24 16:13:42 · 186 阅读 · 0 评论 -
C++语言Sql Server链接不上问题思路补充,给你一个新的参考
前言因为C++工程有用Sql Server数据库的计划,为了后期能方便调用Sql Server Api。我接到任务,将Sql Server api整理成库。原以为是一个简单的需求,后面还是遇到了很多问题。 前期准备1、自己写还是有点麻烦,这里选用otl第三方库,其实就一个otlv4.h头文件。2、安装Sql Server数据库。3、安装Microsoft SQL Serve...原创 2018-12-26 18:09:09 · 406 阅读 · 0 评论 -
C++常见问题,我来讲几点
每篇一语:我从不指望前方的道路,平坦无比。谁不是一边摔倒,一边前行。 C++常见问题,我只讲我印象深刻的,就两点。一、当其他头文件与<windows.h>冲突时,将<windows.h>写到前面。二、#include "Dbghelp.h" 时出错!解决方案:引入<Ws2tcpip.h>头文件,代码引入如下:#ifdef WIN32#i...原创 2018-12-04 22:30:54 · 209 阅读 · 0 评论 -
Linux中将c文件编译成可执行文件的方法
c文件:project.c方法一//预编译,生成已编译通过的C原始程序 *.i gcc -E project.c -o project.i//编译,生成汇编语言原始程序 *.s gcc -S project.i -o project.s//链接,生成可执行程序 gcc -o project.exe project.s方法二//编译 gcc -c project.c -o...转载 2018-11-06 18:08:21 · 5563 阅读 · 1 评论 -
windows上编译zlib-1.2.8记录
应需求变更需要。我们要将原先项目中zlib的功能,移植到新项目上。代码移植完成后,编译,出现一大堆问题,如下所示: 从上图,可以看出。是定义的接口,找不到相应的lib库导致的。为了解决这个问题,我从以下三次入手:(1) 查看代码是否移植完成。(2) 查看属性是否配置ok。主要检查以下两项(图1、图2)。通过比对,属性配置也是ok。图1图...原创 2018-09-19 12:04:30 · 757 阅读 · 0 评论 -
更好使用好vs studio(基于2005)
代码编辑器常用快捷键:1、展开代码和折叠代码所用到的快捷键Ctrl + M + O:折叠所有方法Ctrl + M + M:折叠或者展开当前方法Ctrl + M + L:展开所有方法2、全屏:Shift + Alt + Enter注释选定内容:Ctrl + E + C/Ctrl + E + U代码格式化: Ctrl + E + F3、 调整代码排版的格式选择:编辑->高级->设置文档的...转载 2018-06-25 17:40:20 · 343 阅读 · 0 评论 -
C++发布后崩溃,如何定位错误
写程序时,如果事先没有为崩溃情况留下后手。那么程序发布后,一旦发生崩溃。排查起来就十分麻烦了。我们只能对代码进行全面、仔细的推敲、分析。再加上bug的隐蔽性非常好,解决更是难上加难。下面我基于自己目前的认识,谈谈,如果提高排错的效率和解决问题的几率?我觉着以下的几个步骤,都是不可或缺的。一、发布前1、添加崩溃捕获的代码。(1) 示例代码// 处理Unhandled Exceptio...原创 2018-05-23 22:05:15 · 5752 阅读 · 0 评论 -
Vistual Studio中对指定服务进行调试
每个C++程序,在正式发布前,都会不断的断点调试,只有通过调试,才能走到发布这步。这是否意味着,一旦发布,发现问题。我们就不能利用断点调试这把利器,来发现问题呢?其实不尽然,这也是我为什么要写这篇文章的原因了。 为了发布后,遇到问题时,我们也能进行断点调试,我们需要进行如下准备:(1) 保存保持的pdb文件.(在发布时,发布出去的问题,一般不包含pdb文件)(2) 备份发...原创 2018-04-28 11:54:15 · 283 阅读 · 0 评论 -
运行服务端程序,非部署状态下,实现cs通信的问题
我们在开发客户端的过程中,为了验证接口的正确性,我们需要和服务端一起联调。这里涉及到客户端如何才能访问到服务端的问题。幸运的是,我们知道在局域网下,相同的网段是可以实现相互访问的。满足上述情况下,cs通信受阻,是我将要解决的问题。下面我将整个解决过程记录如下。 (1)我们猜想是防火墙问题,基于这个猜想,我们进入Windows防火墙设置界面。查看防火墙是否关闭。如果访问墙已经...原创 2018-04-25 21:54:12 · 403 阅读 · 0 评论 -
以System用户运行的系统及服务,无法显示界面
在开发守护进程时,遇到一个问题,发了一天时间,才找到问题的思路。特记录下:[问题]将A.exe注册为服务,通过执行WinExec("B.exe的完整路径"{非注册服务}, SW_HIDE),启动B.exe时,在任务管理器中也存在相应进程,但是**无法显示界面**,这是什么原因?[原因]因为A.exe是系统权限,它在session 0,而B.exe他是session1.当A程序运行在session0...原创 2018-03-23 21:11:48 · 2334 阅读 · 0 评论 -
守护程序编写问题记录
从去年年底接手该程序。跨过一个为期11天的春节。到现在该程序总算告一段落了。中间遇到了一些问题。为了从挫折中获取养料,也为了培养起自己记笔记的习惯。特将问题记录下来。而其中记录的所有关于问题的猜想和解决思路,都是从该次项目中提取而来。不能保证思路一定正确。一、常识问题 将服务启动类型设置为自动类型时候,应用程序异常退出。系统在隔一段时间后,会将应用程序重启。二、应用安装完成...原创 2018-03-02 22:26:20 · 164 阅读 · 0 评论 -
安装、启动和挺住服务程序
class WindowsService {private: SERVICE_STATUS* ServiceStatus = NULL; SERVICE_STATUS_HANDLE* ServieStutusHandle = NULL; DWORD dwCheckPoint = 1;public: string ServiceName; string ServiceP...原创 2018-02-24 10:22:29 · 295 阅读 · 0 评论 -
解决Ubuntu 安装vim-gtk 的Package vim has no installation candidate问题
参考链接:https://blog.csdn.net/sinat_33363493/article/details/51284358我遇到的情况跟文中所描述的,有点不一样,跳过解决办法就是修改软件源设置1.备份源文件,cp -i /etc/apt/sources.list /etc/apt/sources.list_backup2.打开sources.list,root@ubunt...转载 2018-12-20 22:06:53 · 6557 阅读 · 0 评论 -
音频pts的计算
摘自原文:https://blog.csdn.net/knowledgebao/article/details/84326649音频sample_rate:samples per second,即采样率,表示每秒采集多少采样点。比如44100HZ,就是一秒采集44100个sample.即每个sample的时间是1/44100秒一个音频帧的AVFrame有nb_samples个s...转载 2019-06-17 22:20:47 · 1898 阅读 · 0 评论 -
LibEventor学习资料
Windows Visual Studio 使用 libevent 库http://www.mycode.net.cn/language/cpp/1523.htmllibevent学习指南https://aceld.gitbooks.io/libevent/content/66_shou_dong_ji_huo_shi_jian.html原创 2019-06-25 16:02:43 · 106 阅读 · 0 评论 -
VS2013 查看程序各个函数的CPU利用率
自己写的程序CPU占用率过高,无法锁定原因时,可以用VS2013帮忙检测1. 打开VS 性能分析2. 启动项目进行检测3. 选择CPU采样 完成4. 分析一段时间 然后停止分析5. 选择显示代码6. 阿萨德可以查看具体函数的占用比了原文:http://blog.csdn.net/cabbage2008/article/details/72281691...转载 2019-06-20 14:38:13 · 3247 阅读 · 0 评论 -
VS运行时 /MD、/MDd 和 /MT、/MTd之间的区别
原文链接:https://www.cnblogs.com/xzabg/p/5875296.html程序运行时出现问题,选择的是Release,win64位的模式,并且已经看到了宏定义NDEBUG,但是程序依然进入上面的部分解决方案是将属性->C/C++->代码生成器->运行库里面的多线程调试(/MTD)修改为多线程DLL(/MD)即可修改之后:编译一下...转载 2019-06-10 10:59:47 · 339 阅读 · 0 评论 -
利用ffmpeg进行音频转码
原文链接:https://blog.csdn.net/unfound/article/details/81205740在进行音频转码前,首先需要查看我们原始音频中的编码格式以及一些重要的音频参数,包括:采样率,采样格式,通道类型等。通过将原始的编码格式,采样率,采样格式,通道类型与目标编码格式,采样率,采样格式,通道类型进行对比,只有其中有一项不符合,我们就可以通过重采样操作,转换为所需要...转载 2019-06-05 11:11:21 · 2347 阅读 · 0 评论 -
Cygwin 及 Windows下编译安装 FFmpeg
原文链接:https://www.imooc.com/article/247113在Linux/Mac下编译 ffmpeg是非常方便的。但要在 Windows下编译 ffmpeg还真要花点时间。不过为了满足学员的要求,也方便自己不再被这类问题打扰,今天我就写一下在 Windowns下编译ffmpeg的步骤,以供大家参考。安装Cygwin在windows下安装 ffmpe...转载 2019-05-21 20:44:57 · 2484 阅读 · 2 评论 -
Cygwin 下编译 Nginx
原文链接:https://www.jianshu.com/p/2a77c4d2428f首先安装以下库:// 貌似一起安装 apt-cyg 不能识别,得一个一个得安装,有些库貌似没找到// apt-cyg install opensslpcrezlibautomake bison curl-devel flex libiconv libmcrypt-devel ...转载 2019-05-24 17:40:50 · 937 阅读 · 0 评论 -
FFmpeg windows软件开发环境搭建
FFmpeg说明FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能1,包含了libavcodec ─这是一个用于多个项目中音频和视频的×××库,以及libavformat——一个音频与视频格式转换库。下载链接https://ffmpeg.zeranoe.com/builds/win64/目录说明注意:shared版本和static版本包含了可...转载 2019-05-08 22:06:24 · 1063 阅读 · 0 评论 -
ffmpeg build问题记录
一、执行ffmpeg -i xx.mp4 out.mp4报输出流0:1缓冲的数据包太多1、分析不是错误。该文件有一些稀疏的视频或音频帧,增加数据包队列大小有助于:2、解决修改命令:ffmpeg -i xx.mp4 -max_muxing_queue_size 400 out.mp43、参考链接http://trac.ffmpeg.org/ticket/6375二、Sub...原创 2019-04-04 17:21:10 · 1732 阅读 · 0 评论 -
音视频pts计算
视频pts计算PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。需要注意的是:虽然 DTS、PTS 是用于指导播放端的行为,但它们是在编码的时候由编码器生成的。当视频流中没有 B 帧时,通常...转载 2019-03-30 19:54:37 · 3700 阅读 · 1 评论 -
单元测试-Socket服务端(简单测试)
前言一般修德有道的高僧都有这样的明悟:"看山是山,看水是水;看山不是山,看水不是水;看山只是山,看水只是水"。其实道理都是相通的,可是我们都易“犯当局者迷”的错误。下面我通过程序员的角度,谈谈自己的一些认识。在我看来:(1)遇到问题,立即想到百度、google。或借力他人,都属于看山是山,看水是水阶段。(2)遇到问题,想办法自己写个。属于看山不是山,看水不是水阶段。(3)遇到问题,...原创 2019-03-12 11:59:09 · 2439 阅读 · 0 评论 -
ubuntu如何安装pthread?
由于学习多线程编程,所以用到pthread,但是man的时候却发现没有pthread函数库的手册页,然后安装$sudoapt-getinstall glibc-doc安装以后,发现还是有很多函数不全,只有一小部分pthread的函数,使用man -k pthread或apropos pthread可以查找到当前manpages中关于pthread的手册。安装manpages-posix-d...转载 2019-03-16 17:01:48 · 17302 阅读 · 0 评论 -
对模板、模板基类、派生类private继承、派生类public继承的一些认识
以下内容纯属虚构,目的在于把自己所学的知识串联起来,以便消化和吸收。 随着国家经济的发展,人民生活水平的提高。对汽车的需求越来越强烈,要求越来越高。各种品牌的汽车制造商,应声而起。各种利益集团,出于安全和垄断考虑。各个制造商之间的交流几乎处于隔绝的地步。每家都有自己完整的汽车制造体系。这样导致汽车的制造成本居高不下,而汽车的价格,在恶性竞争下,一直处于低位。汽车制造方面的利润显得相当狼...原创 2018-02-08 12:24:35 · 288 阅读 · 0 评论 -
解决 error C1083: 无法打开预编译头文件xxx.pch: No such file or directory
问题产生:通常情况下不会出现这种错误,我出现这样的错误提示是因为,我要发布的是一个静态库,于是把要发布的头文件放到了include目录下,把其他文件(包括stdAfx.h及stdAfx.cpp)放到了src目录下,于是编译时提示:错误 1 error C1083: 无法打开预编译头文件:“Debug\PlotData.pch”: No such file or directory e:转载 2017-08-19 20:52:23 · 5626 阅读 · 0 评论 -
c++11自定义线程池
为了保证退出程序前,所有运行的线程都已经停止。我引入了信号量,对线程池进行改造。改造实习代码如下。#pragma once#include#include#include#include#include#include"Semaphore.h"using namespace std;class Thread{public: typedef void(*TheadFunc原创 2017-07-27 17:44:36 · 382 阅读 · 0 评论 -
http://www.cnblogs.com/jasenin/p/5493018.html
转自http://www.cnblogs.com/jasenin/p/5493018.html先说说普通的两种方法:方法1: 通过设置工程配置来添加lib库.转自网上:A、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。B、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规--转载 2017-08-04 16:09:12 · 507 阅读 · 0 评论 -
自定义日志库
暂时设计成这样,后续持续优化中:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#include#include#include#include "macro_define.h"#include#includetypedef enum L原创 2017-08-04 10:32:06 · 185 阅读 · 0 评论 -
c++学习的一种方式
c++学习有一段时间了,从原先的茫然不知所措,到现在,学习有一段时间了,总结下学习的思路和心得。我认为c++入门要从以下几点入手: 一、规划 1、由于c++是构建在c语言的基础上,c语言类似c++的一个子集。因此在学习的过程中,我们要对c++和c的一些特性进行区分,尽量写出一个纯正的c++。 2、c++的入门要重点关注string、线程、soc原创 2017-07-25 11:38:10 · 191 阅读 · 0 评论 -
C++中Vector的删除操作
vector v;v.pushback(0);v.pushback(1);v.pushback(1);v.pushback(0);想要删除值为1的元素错误代码 vector::iterator itr = v.begin(); while (itr!=v.end()) { if (*v==1) {转载 2017-08-01 15:02:06 · 2192 阅读 · 0 评论 -
c++11 粘包问题解决思路
学习c++11有一段日子,最近开始着手c++Socket通信,在如何解决粘包问题上,花了一些时间,初步解决方案记录如下如下:std::thread th([&](){ int iResult; std::vector InputBuff; const int recvbuflen = 2048; while (isClientLive) { char recvbu原创 2017-08-01 14:45:35 · 2013 阅读 · 1 评论 -
未声明的标识符错误
在VS2010下进行VC++调试时,出现这样一种错误:error C2065:未声明的标识符,当时感觉十分怪异,为什么说怪异呢?因为如果在.cpp中未引入相关.h文件出现这样的错误很正常,但是现在是已经引入了相关的头文件,却还是出现了诸如error C2065、error C2087、error C2133...的错误。情况是这样的,新建了一个工程项目,想使用其他工程中定义的同一组.cpp转载 2017-07-05 18:14:01 · 3228 阅读 · 0 评论 -
自定义c++线程池
学习c++有一段时间了,打算从string、线程池、网络等方面入手,写一些东西。期间参考了网络上很多书写线程池得blog。以为是很简单的事,真正着手编程调试的时候确遇到了很多的问题。如: 1)两个类的头文件交叉引用,导致编译通不过的问题。解决方案:抽取出父类,通过继承,解决这个问题。 2) new出来的对象在回收的时候,引发的一些异常。3)如何保证线程在对象销毁之前回收。解决方案:在原创 2017-07-13 15:03:05 · 299 阅读 · 0 评论 -
自定义c++字符串(二)
#include#include#include #includeusing namespace std;/** 备注:* 1、内存申请相关函数概念 alloca是向栈申请内存,因此无需释放. malloc分配的内存是位于堆中的,并且没有初始化内存的内容,因此基本上malloc之后,调用函数memset来初始化这部分的内存空间. calloc原创 2017-06-08 16:42:59 · 260 阅读 · 0 评论 -
C++String学习
#pragma once#include#include#include#includeusing namespace std;/*备注:1、所有和string::npos的比较一定要用string::size_type来使用,不要直接使用int 或者unsigned int等类型。其实string::npos表示的是-12、const char* 可以原创 2017-06-02 10:13:39 · 250 阅读 · 0 评论 -
C++的用法大全
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 首先,为了在我们的程序中使用stri转载 2017-05-21 18:30:57 · 1715 阅读 · 0 评论 -
函数-GetModuleFileNameA函数和GetCurrentDirectoryA函数的应用
头文件#include char moduleFileName[MAX_PATH]; GetModuleFileNameA(0, moduleFileName, MAX_PATH);取得的路径为:c:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects \Test\debug转载 2017-09-07 15:43:57 · 831 阅读 · 0 评论