
C++
野狼位位
将自己在工作中遇到的问题进行详细的总结。
展开
-
一个python和c++接口对应参数顺序引发的血案
在python中设置数据结构class EventConfig(ctypes.Structure): _fields_=[ ('eArrNo',ctypes.c_int), #事件的code,int ('eOnOff',ctypes.c_int), #事件是否进行分析 ('wHrHi',ctypes.c_int), #事件的心率上限 ('wHrLo',ctypes.c_int), #事件的心率下限 ('eVCou原创 2020-11-11 21:08:56 · 262 阅读 · 0 评论 -
ntdll.dll 0xc0000005
出现的问题是ntdll.dll 0xc0000005 ,在调试的时候,报出了这个问题 出现问题的位置是,在C++中使用了new 申请空间 但是为什么出现这个问题,在使用堆栈调试的时候,可以定位到时new出现的问题,但是是这个new出现的问题吗?不一定 解决方式: 先屏蔽掉上下所有的程序,只保留申请空间的操作 只申请空间没有问题,然后把上面申请空间的操作一点一点放开,发现上面某个申请空...原创 2020-04-26 11:04:43 · 6076 阅读 · 0 评论 -
C++ 在配置中的优化,程序优化
1. 属性->配置属性->C/C++->代码生成: 启用增强指令集,可选用 流式处理 SIMD 扩展 2 (/arch:SSE2) (/arch:SSE2)、流式处理 SIMD 扩展 2 (/arch:SSE2) (/arch:SSE2) 进行加速 浮点模型,可选用 快速 (/fp:fast) 进行浮点数据运算的加速2. 属性->配置属性->C/C++->优化:原创 2017-04-10 19:46:43 · 1884 阅读 · 0 评论 -
写C++ DLL时需要写的外部接口头文件
#ifndef WAVELET2D_H#define WAVELET2D_H#include #include using namespace std; //the dll exports#if defined WAVE_EXPORT#define EXPORT __declspec(dllexport)#else#define EXPORT __原创 2017-03-09 14:02:30 · 3400 阅读 · 0 评论 -
C++ 错误总结
1,0x0000000000000000 处(位于 dllTest.exe 中)引发的异常: 0xC0000005: 执行位置 0 ;出现这种错误的原因是:在数据处理的过程中有数组越界,或者说你定义的空间不足。原创 2017-04-07 09:37:46 · 1636 阅读 · 0 评论 -
C++杂记2
1,C++智能指针:shared_ptr:这是是一个标准的共享所有权的智能指针,允许多个指针指向同一个对象,定义在memory中,命名空间std;1)shared_ptr:对象除了包括一个所拥有对象的指针外,还必须包括一个引用计数代理对象的指针,2)时间上的开销主要在初始化和考培操作上,*和->操作符重载的开销和auto_ptr一样(后续学习这个)3)开销并不是我们不适用shared_原创 2017-05-03 08:37:09 · 257 阅读 · 0 评论 -
C++项目添加依赖项
1.新建解决方案,项目A2.为项目A添加一个依赖项目B,项目B做为静态lib被项目引用, 项目B创建步骤如下: a>选择菜单"文件"->新建->项目,弹出“新建项目”对话框; b>左侧列表选择Visual C++,右侧列表选择win32控制台应用程序, 对话框下面输入名称,选择位置,解决方案选...原创 2017-03-28 10:54:04 · 16727 阅读 · 0 评论 -
使用c生成随机数和matlab上的随机数相对应
C:1) (a,b) (rand()%(b-a+1))+a-1[a,b) (rand()%(b-a))+a[a,b] (rand()%(b-a+1))+a(a,b] (rand()%(b-a))+a+1matlab:unidrnd(data):就会产生随机数。原创 2017-12-20 15:36:59 · 489 阅读 · 0 评论 -
c++实现滤波(还没验证)
1.限幅滤波算法(程序判断滤波算法)方法解析:根据经验判断,确定两次采样允许的最大偏差值(设定为A),每次检测到新值时判断:如果本次值与上次值之差如果本次值与上次值只差>A,则本次值无效,放弃本次值,用上次值代替本次值。优点:能有效克服因偶然因素引起的脉冲干扰缺点:无法抑制那种周期性的干扰,平滑度差[cpp]转载 2018-01-03 20:10:19 · 876 阅读 · 0 评论 -
c++ 中生成的exe的使用方式
1,在VS中生成exe后,使用cmd,在cmd中进入exe的目录下,然后再cmd中输入exe的名字和需要的参数2,在执行文件的main函数中有两个参数main(int argc,char**argv):其中argc指明了输入参数的个数,其中包括在cmd中输入的exe的名字,这个也算一个;argv是输入的所有的参数,包括exe的名字。原创 2018-01-24 18:50:31 · 2692 阅读 · 0 评论 -
使用C++查找某个文件夹下的所有的文件和文件夹
string 中find();查找函数有一个唯一的返回类型,就是size_type:一个无符号的整数,查找成功:返回按查找规则找到第一个字符或者子串的位置,查找失败,则返回npos.void GetChildFilesWithExt(const std::string basePath, std::vector<std::string> &files, bool searchS...转载 2018-03-28 19:31:22 · 5919 阅读 · 0 评论 -
C++读取文件ecg还行吧,就是内存还不够优化,有时间在改改;;文件的读写
int** read_datas(char *filename, int *len){int *data;int **ecgdata;FILE *pfile = NULL;int length;short tmp = 0;int i;int m;fopen_s(&pfile, filename, "rb");if (pfile == NULL){原创 2017-03-28 09:56:48 · 793 阅读 · 0 评论 -
C++ 代码程序运行显示函数定义不正确的原因
1,定义函数不正确,主要考虑是:编码格式的问题:选“文件”菜单,“高级保存选项”菜单项,在“高级保存选项”对话框中,将“编码”从“Unicode (UTF-8 无签名) - 代码页 65001”改为“简体中文(GB2312) - 代码页 936”或“Unicode (UTF-8 带签名) - 代码页 65001”。...原创 2018-06-07 17:17:50 · 1830 阅读 · 0 评论 -
c++ 生成事件中的复制操作
在配置属性中,在后期生成事件中,将某个文件中的dll拷贝到另一个文件中使用‘例如::xcopy /Y $(ProjectDir)third_party\x64_d_dll $(SolutionDir)x64\Debug 实现的是将x64_d_dll 目录下的东西拷贝到Debug中。...原创 2018-10-24 11:42:05 · 223 阅读 · 0 评论 -
c++ vs2015 _DEBUG
在程序的属性页中,进入c/c++debug:进入代码生成:在运行库中,选择debug调试的库,后边带d的为调试的库 进入预处理器中,在预处理器定义中添加:_DEBUG 在程序中 ifdef _DEBUG 。。。。 endif 就可以使用了release:步骤1中换成release库 在上面步骤2中,将_DEBUG 换成NDEBUG 其他的类似,就可以使用了...原创 2019-01-04 14:06:50 · 1083 阅读 · 0 评论 -
C++杂记
1,C++原创 2017-02-16 18:36:46 · 268 阅读 · 0 评论 -
VS中调用DLL进行测试;vs进行远程调试;python中进行debug调试需要的文件
1,编写好DLL,2,选择要进行调试的DLL,将此DLL设置为启动项目;3,右键,点击属性,进入配置属性,选择调试;4,选择其中的命令:选择调用这个DLL的主程序;命令参数中输入的是:($TargetFileName)dll输出函数接口 ;这两句要连着写;工作目录:中填写的内容是:要调试的debug路径或者release路径。原创 2017-04-10 22:10:22 · 2481 阅读 · 0 评论 -
C++ vector总结----未完
1,在使用vector进行初始化时:先申请空间,在赋值,vector不用重复申请空间和释放空间,节约时间: vector vc;vc.reserve(10);for (int i = 0; i {vc.push_back(i);}原创 2017-03-02 10:49:56 · 210 阅读 · 0 评论 -
在C++中创建DLL
写个C++的控制台程序,写个.h文件,(单独写一个,防止弄混)其中的内容: // the dll exports#if defined WAVE_EXPORT(这个自己定)#define EXPORT __declspec(dllexport)#else#define EXPORT __declspec(dllimport)#endif//EXP原创 2017-03-03 13:10:23 · 310 阅读 · 0 评论 -
在VS2015中安装opencv的步骤
opencv VS2015原创 2017-02-26 16:22:23 · 1538 阅读 · 1 评论 -
一维卷积的实现
ouble convfft(vector &a, vector &b, vector &cx) {unsigned int sz = a.size() + b.size() - 1;cx.resize(sz);int b_len = b.size();int a_len = a.size();for (int n = 0; n {int kmin = (n >= b_l原创 2017-03-09 13:46:34 · 6625 阅读 · 0 评论 -
C++程序提速----测试阶段
1,在程序的运行过程中,尽量使用数组,指针,这比vector,要提高存取效率;2,在参数的传递过程中使用引用;3,在属性页--》c/C++中的预处理器中的预编译器中,添加 03,DNDEBUG; 在语言中启用openMp支持4,在每个for循环中添加#pragma omp parallel for,在头文件中添加#include ;原创 2017-03-08 16:40:02 · 569 阅读 · 0 评论 -
修该C++项目的名称
1,选中解决方案,右键更改解决方案的名称2,右键项目的名称,更改3,将文件工程文件夹的名字更改为需要的名字‘’4,将.sln中的项目名称全部改为需要的名称;5,将。sln同目录下的文件的名称全部更改为需要的名字6,将ipch中的内容删除7,将Debug中的内容清空8,将x64文件夹中的debug和release清空;9,打开文件,重新编译一下,就ok了。原创 2017-03-13 17:28:52 · 1034 阅读 · 0 评论 -
强大的C/C++库
点击打开链接转载 2017-03-30 11:34:27 · 679 阅读 · 0 评论 -
C++在release模式下可以进行调试
1,在菜单栏中的生成中,点击配置管理器,在活动解决方案中选择release,之后关闭。2,点击项目,属性,进入c/C++ 中的常规,将调试信息格式:选为:程序数据库(/zi);之后在优化中,将优化中的选项设置味儿禁用;之后进入链接中的调试:将生成调试信息选择为:是。3,这种模式下,优化一定要选择为禁用,否则对于一些数据操作会报错。比如ceil,在进行运算的时候会显示:Invalid flo原创 2017-04-11 08:54:24 · 4665 阅读 · 0 评论 -
使用vs调用DLL在运行时调用的方法,使用delph调用dll
1,将*.lib放在和32位debug,release和x64相同的文件夹下,将*.dll放在对应的debug或者release文件夹下;2,在调用的文件中编写:在声明处编写 typedef void (*ceshi)(int *sig, int data_len, int *i_dwt_out); 其中的ceshi 可以是任何名字,自己定义,但是参数和要使用的函数的参数相同;3,在原创 2017-03-24 17:09:28 · 980 阅读 · 0 评论 -
release版本出现的Invalid floating point operation等的错误
1,使用release版本的数据经过优化,在C/C++ 中优化:是速度最大化,选择运行时库MT等,经过各种优化后出现无效的浮点指针错误,或者出现有的函数被优化掉,不能正常的运行,出现这种问题的调试关注点:1)优化中的各种选项,速度和大小,在工具--》选项--》调试--》常规中--》将要求源文件和原始版本完全匹配去掉;这几项对更改错误有效原创 2017-04-12 10:58:20 · 2340 阅读 · 0 评论 -
visual studio中添加小波库
C++ 小波库 其中有的fft3w的文件库自己生成,就行,在链接的文章中有介绍。http://wavelet2d.sourceforge.net/原创 2017-02-24 20:18:32 · 871 阅读 · 0 评论 -
c和C++混合编译
1,将c或者C++的文件提取出来形成一个静态库,在这里面的stdafx.cpp改为stdafx.c;这样,C文件就可以进行编译了。(依赖怎么创建,自己查,不难。)2,还有就是:将较少的一类,C文件或者C++文件的预编译头改为不适用预编译。原创 2017-04-11 15:15:15 · 353 阅读 · 0 评论 -
C++部分类,对象总结
友元函数:friend:1,友元函数:定义在类的外部,但有访问类的所有私有成员,和保护成员,尽管友元函数的原型在类中定义过,但是友元函数并不是成员函数。2,,友元可以是一个函数,该函数被称为友元函数,友元可以是一个类,该类被称为友元类;在这种情况下,整个类及其所有的成员都是友元。3,声明一个函数为一个类的友元,需要在类定义中该函数的原型前使用关键字friend.友元函数不属于任何类。原创 2017-04-09 20:16:20 · 1059 阅读 · 0 评论 -
C++中的内存的泄露
1,使用malloc申请了空间,但是使用完成后没有释放内存。2,同一块内存空间释放了两次,导致崩溃;2)有一块空间没有释放,以为释放了,导致内存泄露;3,程序的误操作,将堆破坏,申请的空间不足,释放导致崩溃;4,当释放的时传入的地址和分配时的地址不一样,会导致崩溃。原创 2017-02-17 09:20:00 · 392 阅读 · 0 评论