c++
文章平均质量分 65
c++的技术分享
biyusr
qq:280905365
展开
-
MFC(c++)显示隐藏缩放控件没有效果的解决方案
那可能是缺少一句代码来更新界面UpdateWindow();执行完这句代码后界面就会执行刷新事件,达到我们想要的效果。在MFC中完成隐藏缩放控件的操作代码后。可能达不到想要实现的效果。原创 2023-02-28 10:59:20 · 317 阅读 · 1 评论 -
彻底理解内存泄漏,memory leak
在现代操作系统中除非你的程序运行时间足够长或者申请的内存足够快足够多否则内存泄漏可能并不是什么大问题,你甚至可能都察觉不出来有内存泄漏,因为当进程运行结束后其占据的内存会被操作系统收回,在这种情况下你可能不必过于关心这个问题,但对于长时间运行的服务器端程序、数据库程序、操作系统等,内存泄漏就属于比较严重的问题了,因为这些程序必须时刻在线,任何微小的内存泄漏在时间的加持下都会非常明显。可以看到,利用虚拟内存我们可以更加充分灵活的利用“边边角角”的物理内存,从而减少内存碎片带来的影响。下一篇文章将给你答案。原创 2022-09-20 00:44:44 · 320 阅读 · 1 评论 -
神奇的Google二进制编解码技术:Protobuf
是不是很清晰,一目了然,只要我们实现约定好文本的结构(也就是语法),那么client和server就能利用这种文本进行信息的编码以及解码,不管client和server是运行在x86还是Arm、是32位的还是64位的、运行在Linux上还是windows上、是大端还是小端,都可以无障碍交流。其中value比较简单,也就是字段值;意思是说如果数字本身比较大,那么其使用的比特位可以较多,但如果数字很小那么就应该使用较少的比特位来表示,这就叫变长,随机应变,不死板。原创 2022-09-14 09:19:27 · 136 阅读 · 0 评论 -
我为什么放弃 C++,选择 C 语言编写个人项目?
每当添加一个函数调用,就有可能增加一个新异常,如果调用函数的代码没有妥善处理该异常,就意味着增加了一个新Bug。这可不是我强加的人为限制,而是因为如果在进程中调用析构函数,或者恢复栈时恰好抛出异常,就会导致整个进程崩溃。话虽如此,然而问题在于,如果使用异常,如上所述,就必须处理所有与异常相关的复杂性。综上所述,我认为,如果你的需求是不允许出现未定义的行为,则不适合面向对象的编程。但是,我决定不使用异常。首先,我的个人项目ZeroMQ是一个持续运行的基础设施,永远不应该出故障,永远不应该表现出未定义的行为。原创 2022-09-09 16:46:20 · 80 阅读 · 0 评论 -
聊聊 C++ 和 C# 中的 lambda 玩法
这几天在看 C++ 的 lambda 表达式,挺有意思,这个标准是在 加进去的,也就是 2011 年,相比 C# 2007 还晚了个 4 年, Lambda 这东西非常好用,会上瘾,今天我们简单聊一聊。首先我们看下 C++ 语法定义格式:相比 C# lambda 的语法格式:要复杂一些,之所以复杂还是因为 C++ 让程序员用的必须更谨慎一些。为了说明更谨慎在哪里,我们上一个简单的例子。上面就定义了一个原子化的 lambda 函数,在现实开发中往往不仅要获取参数,还要获取 的变量,比如说,我想计算原创 2022-06-30 08:34:18 · 135 阅读 · 0 评论 -
如何编译生成dll文件以及如何调用dll文件
1.vs2015下生成DLL文件文件->新建->项目点击确定选择dll选项和空项目选项点击完成为项目添加c++源文件mydll.cpp extern"C"// 此处extern "c" 为解决c/c++兼容问题 { _declspec(dllexport)intadd(inta,intb) { returna + b; } extern"C"...转载 2021-09-02 09:16:17 · 5560 阅读 · 0 评论 -
编译dll时,如何不依赖c++运行库
用VC编译的DLL如果依赖VC运行库,分发时如果目标系统不带对应版本的VC支行库,将导致DLl调用失败,在编译时应设置不依赖VC运行库:在C/C++/Code Generation的Runtime Library中选择Multi-threaded(/MT) Release配置或Multi-threaded Debug(/MTd) Debug配置就可以编译出不依赖VC运行库的DLL了。在vs中,项目属性 -》C/C++ -》代码生成 -》运行库 选项内有四个选项:多线程(/MT)、多线程调试.转载 2021-09-02 09:14:54 · 1607 阅读 · 0 评论 -
c++的程序打不上断点的解决办法
1.项目属性页C/C++ 调试信息格式选择用于“编辑并继续”的程序数据库(/ZI)2.设置C/C++---》优化节点为3.设置链接器----》调试节点设置如下原创 2021-07-15 13:36:45 · 773 阅读 · 0 评论 -
VC++ 利用PDB和dump文件定位问题并进行调试
转载:https://blog.csdn.net/zfs_kuai/article/details/43646665转载:https://blog.csdn.net/i_chaoren/article/details/81453142一、什么是PDB文件 1. PDB文件是"程序数据库" Program Data Base的简称,包含的程序的代码信息 2.通过这个文件我们可以查看对应断电的位置,堆栈信息等内容 3.使用PDB使得我们无需代码也可以掌握程...转载 2021-07-13 10:20:51 · 1392 阅读 · 0 评论 -
vs中c++添加lib库和头文件(外部依赖项)
在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1. 添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。 2. 添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。 3. 然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。 4. 添加工程引用的dll动...转载 2021-07-01 15:39:33 · 7331 阅读 · 0 评论 -
c++调用c#写的DLL
c++调用c#写的DLL;此文章演示了建立c#的dll;c++建立工程,引入dll;不能解决的问题:指定dll的路径,在代码里面直接写 #using "xxx.dll" 必须要在使用路径 #using "../bin/debug/xxx.dll"1-建立c#的dll,过程略;2.修改输出路径输出为 ../bin/debug; ../bin/release 方便c++可以定位找到3.在解决方案添加C++工程,过程略4.新添加的C++工程,引用DL...转载 2020-12-12 21:45:35 · 885 阅读 · 0 评论 -
VS2012中MFC的对话框界面风格问题
以前在XP写的程序,现在系统换成了WIN7,现在对话框在编辑和预览的时候显示都如图一所示,可实际编译生成之后的显示却如图二所示,是什么问题?如何设置两者的显示风格使其保持一致?------------------------------------------------------------------------------------------------------猫腻在stdafx.h中.看这个文件中是否有#ifdef_UNICODE #if...转载 2020-09-22 10:04:30 · 576 阅读 · 0 评论