C++
txwtech笛克特科
like C++/QT/OpenCV/C#/
cdtxw@foxmail.com
展开
-
c++ 智能指针shared_ptr与make_shared
shared_ptr是C++11引入的一种智能指针,它允许多个shared_ptr实例共享同一个对象,通过引用计数来管理对象的生命周期。当最后一个持有对象的shared_ptr被销毁时,它会自动删除所指向的对象。这种智能指针主要用于解决资源管理问题,避免内存泄漏。make_shared是C++标准库中的一个函数,用于创建一个shared_ptr智能指针,它接受一个或多个参数来构造一个对象,并返回一个指向该对象的shared_ptr。类SerialModbus的成员指针。原创 2024-07-25 14:10:57 · 406 阅读 · 0 评论 -
c#调用c++ dll库报错System.BadImageFormatException
System.BadImageFormatException:“试图加载格式不正确的程序。(异常来自 HRESULT:0x8007000B)”2.选择相同位数,比如x64平台,c#也需要x64。1. dll需要选择release模式进行编译。c++可以输出到控制台,c#不能显示,就会报错。3.不要设置c#不支持的函数供调用。原创 2024-07-10 22:19:24 · 406 阅读 · 0 评论 -
c++ dll动态库的调试方法
VS2019创建c++动态链接库dll与调用方法_vs 2019 c++创建dll库 并使用 不需要lib-CSDN博客头文件.h。_vs 2019 c++创建dll库 并使用 不需要lib。原创 2024-07-10 22:07:30 · 408 阅读 · 0 评论 -
c++ vs2019 excpt.h”: No such file or directory
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\windows.h(167,10): fatal error C1083: 无法打开包括文件: “excpt.h”: No such file or directory。原创 2024-07-10 09:59:51 · 284 阅读 · 0 评论 -
c++ warning C4273: “MathFunc::fnAdd”: dll 链接不一致
warning C4273: “MathFunc::fnAdd”: dll 链接不一致。确保头文件与预处理器的信息一致。原创 2024-07-10 09:43:38 · 207 阅读 · 0 评论 -
vs2019控制台c++调试信息打印到底部的输出窗口
vs2019控制台调试信息打印到底部的输出窗口。原创 2024-07-09 14:01:19 · 468 阅读 · 0 评论 -
VS2019+QT5.15调用动态库dll带有命名空间
vs创建动态库cpp。qt调用动态库原创 2024-06-12 11:04:21 · 683 阅读 · 0 评论 -
vs QT项目E0898 非成员运算符要求类类型或枚举类型的参数C1083: ‘type_traits
严重性 代码 说明 项目 文件 行 禁止显示状态错误(活动) E0952 非类型模板参数不能为类类型 QtWidgetsApplication5 D:\Qt5.15.2\5.15.2\msvc2019_64\include\QtCore\qstringview.h 378严重性 代码 说明 项目 文件 行 禁止显示状态。原创 2024-06-12 09:34:46 · 440 阅读 · 0 评论 -
QT调用vs2019生成的c++动态库
QT调用vs2019生成的c++动态库 加减法示范:头文件cpp。原创 2024-06-12 08:38:36 · 597 阅读 · 1 评论 -
vs2019无法打开源文件iostream
根据msvc安装的目录进行修改。添加包含目录和库目录。原创 2024-06-11 08:23:34 · 421 阅读 · 1 评论 -
VS2019创建c++动态链接库dll与调用方法
头文件.h。原创 2024-06-07 22:57:21 · 600 阅读 · 0 评论 -
c++调用动态库LNK2019无法解析的外部符号LNK1120无法解析的外部命令
错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: __cdecl CDll2::CDll2(void)" (__imp_?0CDll2@@QEAA@XZ),函数 main 中引用了该符号 ConsoleApplication1 D:\vs_qt_project\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1。原创 2024-06-07 22:21:01 · 614 阅读 · 0 评论 -
QT c++ 堆栈一些理解--限制对象建立在栈上--栈堆区别
图示形象化理解:堆栈都是数据结构存取数据的方式堆:理解为一个堆积物体,独立的分散的,当需要空间时,再找一个地方。需要的就是new关键字,动态申请一个空间。程序员自己动态分配空间,使用指针操作,不使用时,手动在析构函数里删除指针动态创建对象栈:可以理解火车站的站,是通过调度是统一安排停放在哪个位置,占用存储空间,无需自己考虑。程序员无需考虑空间分配问题,无需在析构函数中处理。静态创建对象栈的容量较小,一般只有几百KB到几MB的空间举例:一个debug.h的创建类。原创 2024-06-06 10:01:16 · 1061 阅读 · 0 评论 -
QT_c++读取访问权限冲突
没有创建类对象:比如注释了new这段代码。原创 2024-06-06 08:51:47 · 160 阅读 · 0 评论 -
c++ static_cast 使用方法介绍
2、C++中的reinterpret_cast主要是将数据从一种类型的转换为另一种类型。所谓“通常为操作数的位模式提供较低层的重新解释”也就是说将数据以二进制存在形式的重新解释。reinterpret_cast的作用是说将指针p的值以二进制(位模式)的方式被解释为整型,并赋给i,//i 也是指针,整型指针;(子类)之间指针或引用的转换。进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。原创 2024-04-23 09:28:19 · 459 阅读 · 0 评论 -
MFC CString转string转char数组_相互转换
MFC CString转string转char数组_相互转换CString就是宽字节,如果项目创建的字符集是Unicode 字符集,那么某些地方就需要转换比如vs2013默认项目,unicode 字符集。需要用到socket的send发送数据,如果CString str=txwtech,str.getbuffer(0)发送,则只会发送第一个字符//所以需要转换char *lpsz=wchat2char(str),再用m_SocketClient.send(lpsz,str.GetL原创 2021-04-16 14:12:01 · 1105 阅读 · 0 评论 -
C++ win32 Sleep()头文件 #include <windows.h>
C++ win32 Sleep()头文件 #include <windows.h>原创 2021-04-14 10:22:40 · 854 阅读 · 0 评论 -
单链表插入数据
单链表插入数据#include<stdio.h>////////////////////////////////////////定义/////////////////////////////////////////////////////////////////////////////typedef struct link//定义一个结构体,里面只有一个int数据 *next用来存放下一个节点的地址{ int data; struct link *next;}L原创 2020-06-18 19:52:13 · 2075 阅读 · 0 评论 -
堆、栈、自由存储区、全局/静态存储区和常量存储区分别是什么作用?
堆、栈、自由存储区、全局/静态存储区和常量存储区在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区,就是那些由malloc等分配的内存块,他和...原创 2020-06-18 19:46:08 · 965 阅读 · 1 评论 -
winxp系统连接服务器丢包解决方法
winxp系统连接服务器丢包解决方法设置10M全双工后,ping服务器,不丢包了原创 2020-02-27 17:52:01 · 516 阅读 · 0 评论 -
cb52a_c++_STL_堆排序算法make_push_pop_sort_heap
cb52a_c++_STL_堆排序算法make_push_pop_sort_heapheapsort堆排序算法make_heap()-特殊的二叉树,每一个节点都比根小,根就是最大的数。大根堆,也可以做成 小根堆寻找最大数,最大数排在最前面。或者寻找最小数,最小数排在最前面push_heap()pop_heap()sort_heap()把vector做成像一个堆/*cb52a_...原创 2020-02-27 14:38:37 · 261 阅读 · 0 评论 -
cb51a_c++_STL_算法_根据第n个元素排序nth_element
cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:partition()算法,分区算法error C2675: 一元“++”:“TT88”不定义该运算符或到预定义运算符可接收类型的转换for (TT88::iterator iter = i...原创 2020-02-27 11:49:22 · 228 阅读 · 0 评论 -
cb50a_c++_STL_算法_局部排序partial_sort
cb50a_c++_STL_算法_局部排序partial_sortpartial_sort(b,se,e)排序一部分,begin,source end,endcout << "部分排序,开头的5个数排序" << endl;partial_sort(ideq.begin(), ideq.begin() + 5, ideq.end());需要注意的是,不能保持未排序...原创 2020-02-26 21:56:31 · 377 阅读 · 0 评论 -
cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort
cb49a_c++_STL_算法_对所有元素排序_sort_stable_sortsort(b,e)sort(b,e,p)stable_sort(b,e)stable_sort(b,e,p)注意:不适用于list容器,list有成员函数sort();cb49a_c++_STL_算法_对所有元素排序_sort_stable_sortsort(b,e)sort(b,e,p)...原创 2020-02-26 12:12:02 · 254 阅读 · 0 评论 -
cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition
cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partitionrandom_shuffle()//重排,随机重排,打乱顺序partition()分区,把符合规则的分成两个区域,比如奇数放一边,偶数放一边.默认之间的位置会变化stable_partition(),稳定的分区,分区后,默认之间的位置不会变化,比如:2,3,5,6,分区后,2依然在6...原创 2020-02-26 11:27:42 · 225 阅读 · 0 评论 -
cb47a_c++_STL_算法_排列组合next_prev_permutation
cb47a_c++_STL_算法_排列组合next_prev_permutation使用前必须先排序。必须是 1,2,3或者3,2,1.否者结果不准确。如果, 1,2,4,6.这样数据不会准确next_permutation()//原始数据是从小到大的, 1,2,3prev_permutation() //原始数据是从大到小的,比如 3 ,2 ,1,则可以使用这个算法。3个数字就6种组...原创 2020-02-25 21:34:19 · 214 阅读 · 0 评论 -
cb46a_c++_STL_算法_逆转和旋转reverse_rotate_函数advance
cb46a_c++_STL_算法_逆转和旋转reverse_rotateSTL算法--变序性算法reverse() 逆转reverse_copy()一边复制一般逆转rotate()旋转,某个位置开始前后交换位置rotate(ivec2.begin(), ivec2.begin() + 2, ivec2.end());1,2,3,4,5,6,7,8,9,rotate后:3,4,5,6...原创 2020-02-25 21:09:18 · 358 阅读 · 0 评论 -
cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据
cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据unique(b,e),删除连续性的,删除重复的数据,比如如果有两个连续的5,5,则留下一个。unique(b,e,p)unique_copy(b1,e1,b2)unique_copy(b1,e1,b2,p) copy(source, source + sourceNum,back_in...原创 2020-02-25 15:43:04 · 200 阅读 · 0 评论 -
cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if
cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_ifremove_copy()//在复制过程中删除一些数据remove_copy_if()删除性算法:remove()remove_if()remove_copy()remove_copy_if()unique()unique_copy()error C2760: 语法错误: ...原创 2020-02-25 11:52:17 · 316 阅读 · 0 评论 -
cb43a_c++_STL_算法_删除_(1)remove_remove_if
cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if()注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没有减少最后的一位或者两个的数据向前移动后,最后的数据没有其他数据覆盖,所以数据依然存在。2.返回值是:新的逻辑终点,删除后,都采用逻辑终点。error C2760: 语法错误: 意外的令...原创 2020-02-24 12:29:02 · 257 阅读 · 0 评论 -
cb42a_c++_STL_算法_替换_replace
cb42a_c++_STL_算法_替换_replacereplace(b,e,ov,nv),ov,old value, nv,new valuereplace_if(b,e,p,v) 根据p的条件,全部更换成v的值replace_copy(b1,e1,b2,ov,nv)//边复制变替换replace_copy_if(b1,e1,b1,p,v)error C2760: 语法错误: 意外的...原创 2020-02-24 10:44:59 · 272 阅读 · 0 评论 -
cb41a_c++_STL_算法_填充新值fill_generate
cb41a_c++_STL_算法_填充新值fill_generatefill(b,e,v)fill_n(b,n,v),填充n个vgenerate(b,e,p)generate_n(b,n,p)generate_n(back_inserter(ilist), 5, rand);//插入5个随机数,rand是个随机数函数STL算法-修改性算法for_each()copy()co...原创 2020-02-23 18:37:28 · 234 阅读 · 0 评论 -
cb40a_c++_STL_算法_交换swap_ranges
cb40a_c++_STL_算法_交换swap_rangesswap_ranges(b,e,b2);如果两个容器的数据数量不一致时,只交换一部分数据,a里面3个,b里面5个,则只会交换3个,b里面还有两个不变注意:下列两种方法也是交换算法1.容器的swap()成员函数2.赋值操作/*cb40a_c++_STL_算法_交换swap_rangesswap_ranges(b,e,b...原创 2020-02-23 17:14:01 · 202 阅读 · 0 评论 -
cb39a_c++_STL_算法_for_each_transform_比较
cb39a_c++_STL_算法_for_each_transform_比较for_each() 速度快,不灵活transform() 速度慢, 非常灵活STL算法-修改性算法for_each()copy()copy_backward()transform()merge()swap_ranges()fill()fill_n()generate()generate_n(...原创 2020-02-23 16:42:34 · 254 阅读 · 0 评论 -
cb38a_c++_STL_算法_transform
cb38a_c++_STL_算法_transformtransform()算法有两种形式:transform(b1,e1,b2,op);//b1(源区间)的数据通过op函数处理,存放在b2(目标区间)transform(b1,e1,b2,b3,op)//把b1,b2结合一起通过op函数处理,存放到b3注意:1.如果目标与源相同,transform()就和for_each()一样2.如果想以...原创 2020-02-23 16:15:53 · 321 阅读 · 0 评论 -
cb37a_c++_STL_算法_复制元素copy_copy_backward
cb37a-_c++_STL_算法_复制元素copy_copy_backwardcopy(),同一个容器内部区间的拷贝,或者容器与容器之间的拷贝copy_backward()//向后copy注意:1.没有copy_if算法,可以使用remove_copy_if()算法2.复制过程中要逆转元素次序,使用reverse_copy()算法3.把容器内所有元素赋值给另一个容器,要使用赋值操...原创 2020-02-22 17:29:54 · 1159 阅读 · 0 评论 -
cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare
*cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare区间:容器中的全部数据或者部分数据,都叫做区间equal(b,e,b2),比较两个容器数据是不是相等 ,b(容器1,迭代器begin()),e(容器1,迭代器end(),b2(容器2,迭代器2指向的位置,begin2if(equal(ivec.begin(),ivec...原创 2020-02-22 14:55:14 · 244 阅读 · 0 评论 -
cb35a_c++_STL_算法_for_each
cb35a_c++_STL_算法_for_eachfor_each(b,e,p)使用for_each()算法遍历数据使用for_each()和函数对象修改数据使用for_each()的返回值//转换函数operator double() //参考:https://www.cnblogs.com/txwtech/p/12115391.html //static_cast...原创 2020-02-21 21:17:59 · 232 阅读 · 0 评论 -
cc24a_c++_转换函数operator int
c++ cc24a_demo //转换函数,用来做转换操作符,int()括号里面必须是空的,必须定义为const,代码示范#include <iostream>#include <string>using namespace std;class Dog{public: Dog(string n, int a, double w) :name(n),...原创 2020-02-21 21:03:54 · 1015 阅读 · 0 评论 -
cb34a_c++_STL_算法_查找算法_(7)_lower_bound
cb34a_c++_STL_算法_查找算法_(7)_lower_bound//针对已序区间的查找算法,如set,multiset关联容器-自动排序lower_bound()--第一个可能的位置upper_bound()--查找最后一个可能的位置equal_range()--同时查找第一个和最后一个可能的位置.做了两件事,先做lower_bound(),再upper_bound()pai...原创 2020-02-20 22:18:54 · 247 阅读 · 0 评论