- 博客(158)
- 资源 (15)
- 收藏
- 关注
原创 WinDbg检查内存泄漏
1.在windbg.exe路径下执行cmd2.输入打开GFlags,我要检查的程序名称为midas XDS.exeC:\Program Files (x86)\Windows Kits\10\Debuggers\x64>gflags.exe /I midas XDS.exe +ust3.第一次拍照,此程序的进程pid为:17136C:\Program Files (x86)\Windows Kits\10\Debuggers\x86>umdh -p:17136 -f:test111.t
2021-12-23 11:36:52 1750
原创 OpenGL绘制桥梁模型
本文主要讲述如何使用现代OpenGL绘制一个完整的桥梁模型,包括箱梁、盖梁和桥墩,关于OpenGL方面,主要添加的shader,使用phong光照模型实现。一、绘制箱梁1.1 箱梁的的截面和坐标系截面:坐标系:1.2 箱梁的顶点及其法向量 float vertices[] = { ////////////////////////////////////////////////////////////////////////// //前视图 // 左翼缘 // position
2021-06-30 14:32:36 807 2
原创 Modern OpenGL绘制圆柱体
本文主要介绍如何使用 C++ 生成圆柱几何体以及如何在 OpenGL 中绘制它。1.绘制方法由于我们无法绘制一个完美的圆形底面和圆柱体的弯曲侧面,我们只能通过将底面除以扇区(切片)来采样有限数量的点。因此,它在技术上是通过将这些采样点连接在一起来构建棱柱体。随着样本数量的增加,几何形状更接近于圆柱体。假设一个圆柱体以原点为中心,半径为r,高度为h。圆柱体上的任意点 ( x, y, z ) 可以从具有相应扇形角θ的圆方程计算出来:扇形角的范围是从 0 到 360 度。每个步骤的扇形角可以通过以下方
2021-06-29 20:49:47 5621 2
原创 土木想往土木软件开发方向发展,应该如何准备
最近很多学生、做结构设计的想要转开发,请教我应该如何准备。作为一个土木专业背景的开发人员,一路走来走了很多坑,所以,我想把我的学习经验写在这里,希望对大家有用。一、入门篇如果你没有基础,可以先按照以下的专业课程进行学习。1.学习C++。很多土木软件开发公司用的开发语言都是C++,包括广联达、迈达斯、盈建科、PKPM。C++也是主流的开发语言,各大互联网的底层开发也都会用到C++,所以,建议大家首选的开发语言是C++。C++也是被称为最难的语言,建议大家可以先学习C语言,学习C语言对后面学习计算机的
2021-05-22 17:56:39 1822 3
原创 抽象工厂模式
定义抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。实现步骤一:创建抽象类来获取工厂。class CAbstractFactory{public: CAbstractFactory(void){}; virtual ~CAbst
2021-05-07 14:50:55 161
原创 调用另外一个项目中的函数-设计模式解耦
背景描述:现需要在项目 CDP_cmd 中调用项目 CDP_dgnCalc 类CAnalRstHelper_JTGTJ212011中的函数:BOOL GetElemValuePositiveOrNegativeMy(IN OUT TElemPosition& tElemPos,OUT double& dCtrlValue, BOOL bPositive);解决方法:1.查看项目属性,发现项目CDP_cmd和项目CDP_dgnCalc均引用项目CDP_db,故可在CDP_db中添加一
2021-03-15 19:37:45 357
原创 从DLL中动态加载一个函数:LoadLibrary和GetProcAddress的使用
背景描述:在项目CDP_cmd中需要调用项目CDP_dgnCalc中的类CAnalRstHelper_JTGTJ212011的函数:BOOL GetElemValuePositiveOrNegativeMy(IN OUT TElemPosition& tElemPos,OUT double& dCtrlValue, BOOL bPositive);解决方法:1.在CAnalRstHelper_JTGTJ212011.cpp中添加一个全局函数:EXTERN_C __declspec
2021-03-15 15:23:11 1371
原创 对话框加载位图及拉伸后位图重叠问题
## 1.问题描述对话框中加载位图后,试图拉伸吐话框,出现以下问题:![](https://liyanliangpublic.oss-cn-hongkong.aliyuncs.com/img/QQ截图20201230163014.png)## 2.解决方法添加Onsize()消息函数,函数内调用Invalidate(),Invalidate()之后,Invalidate()->OnPaint()->OnPrepareDC()->OnDraw()所以只是刷新在OnPain
2020-12-30 17:18:25 281
原创 CRichEditCtrl更改为BCGControlBar的CBCGPEdit
1.添加Edit控件,设置其属性2.Button "Result" 的消息函数如下int CTestMFC2Dlg::m_Count = 0;void CTestMFC2Dlg::OnBnClickedButtonResult(){ // TODO: 在此添加控件通知处理程序代码 LOGFONT lf; // clear out structure. memset(&lf, 0, sizeof(LOGFONT)); //
2020-12-30 11:40:13 309
原创 MFC的CComboBox被BCG的替换BCG的CBCGPComboBox后程序崩溃
如果对话框包含列表框或组合框控件,则必须将其样式更改为owner-draw + “Has strings” ,并为这些控件添加CBCGPListBox / CBCGPComboBox变量。由于Windows的限制,提到的样式在列表后不能更改 框/组合框已创建,因此BCG无法进行此更改。参考:https://my.oschina.net/u/3992677/blog/4555550...
2020-12-24 14:31:20 518
原创 C++动态链接库配置
1.在项目文件夹中新建两个文件夹:lib和includeinclude文件夹的放链接库的.h文件:lib文件夹放lib文件:2.由于我动态调用的库是debug下x86多字节的,所以我需要新建一个配置Debug_MBCS3.字符集改为使用多字节字符集这时候打开预处理器定义,会看到继承的值中有_MBCS:如果是Unicode,继承的值为:关于MBCS和Unicode:MBCS表示多字节,比如“a中”,表示3个字节,字母a表...
2020-12-16 11:13:56 650
原创 C# 使用OpenXML创建PPT表格
1.方法一 :通过自定义的CTableGrid存储表格数据进行创建表格 // 创建表格 public bool AddTable(uint slideIndex, CTableGrid tableData, double dPosX, double dPosY, string strTitleRowColor, string strOddRowColor, string strEvenRowColor) { SlidePart ...
2020-12-13 17:29:15 1360 1
原创 “应用程序无法正常启动 0xc0150002”如何解决?
Visual Studio2012在debug下运行程序报错“应用程序无法正常启动 0xc0150002”:是因为这套程序以前使用visual studio2008开发的,所以我们需要安装上VS2008ExpressENUX1397868 ,才能在调试状态下运行此程序。附上下载地址:链接:https://pan.baidu.com/s/1vxD6jHssI2Ryghmxaq7Geg 提取码:cxwh...
2020-12-10 09:22:27 3371
原创 如何调试Revit二次开发代码-含教学视频(解决无法调试问题)
教学视频连接:https://www.bilibili.com/video/av55021238/1.打开Revit,打开visual studio,以下简称VS。准备好要调试代码的dll文件。2.在VS中打开要调试代码3.在需要调试的地方加入断点,如下图所4.VS菜单中 调试->附加到进程(快捷键:Ctrl+Alt+P)5.在打开的对话框中选择Revit...
2020-08-02 08:38:18 1457 2
原创 关于MFC中CString FindOneOf(_T(“0123456789.“))的使用
一、释意CString str;int nPos = str.FindOneOf(_T("0123456789."));表示查找字符串中第一个出现数字的位置。二、举个例子将钢筋符号 d25 转为其直径值 25。代码实现:int ConvertDiaStrToInt(const CString& strDia){ CString str = strDia; int iPos = strDia.FindOneOf(_T("0123456789.")); if(iP
2020-07-19 09:05:26 665
原创 工厂方法设计模式 C++实现
目录一、工厂方法模式定义二、类图三、平行的类层级四、项目完整代码五、参考资料一、工厂方法模式定义 通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的。二、类图三、平行的类层级四、项目完整代码https://github.com/mc-liyanliang/Design-patterns/tree/master/FactoryPattem五、参考资料《Head First设计模式》...
2020-07-06 22:39:31 363
原创 简单工厂设计模式 C++实现
目录一、类图二、建立披萨类三、披萨的种类3.1CheesePizza3.2ClamPizza3.3PepperoniPizza3.4VeggiePizza四、建立披萨工厂五、建立披萨商店六、项目完整实现代码七、参考资料一、类图二、建立披萨类Pizza.h#pragma onceclass CPizza{public: CPizza(); virtual ~CPizza(void);public: void Pr...
2020-07-05 17:03:43 403
原创 装饰者设计模式 C++实现
目录一、设计原则二、认识装饰者设计模式三、以装饰者构造饮料的订单四、装饰者模式框架五、本文的类图六、接口类6.1饮料接口类6.2调料接口类七、写饮料的代码7.1 浓缩咖啡饮料7.2 深焙咖啡7.3综合咖啡饮料7.4咖啡因饮料八、写调料的代码8.1摩卡调料8.2 奶泡调料8.3 豆浆调料8.4 牛奶调料九、测试代码十、项目完整代码十二、参考资料一、设计原则 开放-关闭原则:类已更改对扩展开放,对修改...
2020-07-05 09:46:33 796
原创 策略设计模式 C++实现
策略模式体现了 “针对接口编程,而不是针对实现编程”,如有的鸭子会叫,有的鸭子不会叫,把鸭子叫的行为委托给(delegate)给 叫 的接口类去实现,而不是在 鸭子 的类中实现。
2020-07-04 11:22:17 657
原创 观察者设计模式 C++实现
观察者设计模式可以类比为:电子报纸出版社为主题(Subject),而订阅电子报纸的人为观察者(Observer),只要有新的事件,出版社就会给每一个订阅者发送信息。观察者可以注册订阅、取消订阅,而出版社可以通知所有的订阅者。
2020-07-03 22:59:37 316
原创 MFC 删除ListBox控件中多条且非连续的的条目
问题描述:删除ListBox控件中多条且非连续的的条目解决方法:CListBox m_ListBox; //删除void CDetailDrawDWallDlg::OnBnClickedDelete(){ int nCount = m_ListBox.GetSelCount(); //选中的条目数量 if (nCount == 0) return; CArray<int> arSelectItems; arSelectItems.SetSize(nCount);
2020-06-04 19:31:13 376
原创 C++ 在控件上使用科学记数法输出数据
方法:str.Format(_T("%.3g"),dNumber);代码实现: //保护层厚度、直径、宽度、高度 str.Format(_T("%.3g"),data.GetCovering()); m_EditCovering.SetWindowText(str); str.Format(_T("%.3g"),data.GetDiameter()); m_EditDiam...
2020-05-03 22:43:17 1033
原创 【C++】ODA的基本操作-平移、旋转、矩阵变换
ODA(Open Design Alliance)是一套与ARX类似的图形开发库,熟练使用ODA接口,可以大大加快我们的几何图形开发效率。一、添加常用的头文件#include "OdaCommon.h"#include "GePoint2d.h"#include "GeVector2d.h"#include "GeMatrix2d.h"二、 矩阵变换和图形放大 O...
2020-05-01 11:54:37 2412
原创 C++ 不同名称的字符串数组归类
问题描述: 现有一个数组,数组存放着构件名称:ZC-1,ZC-2,ZC-2,ZC-2,ZC-3,ZC-1,ZC-2,ZC-3,ZC-3,ZC-3,将这些构件名称按照名称分组。如ZC-1放到一个数组里。代码实现://按几何条件归类,相同名称的构件即为几何条件相同,如ZC-1为一类void ClassificationStrutByName(const CString&...
2020-04-05 20:30:24 331
原创 C++ 冒泡排序 由大到小
void Sort(vector& vecStrutRebar) const{ for (unsigned int nIndex1 = 0;nIndex1 < vecStrutRebar.size(); nIndex1++) { for (unsigned int nIndex2 = 0 ; nIndex2 < vecStrutRebar.size() - nInd...
2020-04-05 20:20:39 2223
原创 C++ CString数字字符串排序
问题描述: 对后缀的字符数字进行排序:代码实现:void SortTypeName(std::vector<CString>& vecName){ std::map<CString,std::vector<CString>> mapName; //mapName<ZC-1,vector<ZC-1-1>> ...
2020-04-05 20:16:33 1087 1
原创 C++编写的表白小程序(图片围成爱心+烟花+音乐)-附源代码
一、效果视频效果:C++编写的表白小程序(图片围成爱心+烟花+音乐)-附源码二、项目完整源代码:链接:https://pan.baidu.com/s/1zea3Wji1VN4FIrqXoa4LWw提取码:ypag三、程序需要调用EasyX图形库官网链接:https://easyx.cn/downloads/使用的版本:EasyX库(附带graphics.h)...
2019-12-25 21:59:40 38115 19
原创 两跨连续梁影响线绘制(二)
一、题目描述:1.用户输入L1和L2的值,求D点弯矩影响线;2.车辆在此连续梁上前后任意移动,求出车辆对D点产生的弯矩最大效应系数。二、 效果MFC:matlab:三、主要代码CCalculation.p#include "stdafx.h"#include "CCalculation.h"#include <math.h>CC...
2019-12-19 08:59:58 2592
原创 两跨连续梁影响线绘制(一)
题目大意: 如图所示,用户输入跨度L1和L2,绘制出B点的影响线。效果:步骤:一、计算影响线二、添加计算类:CCalculationCCalculation.h#pragma once//计算影响线的公式class CCalculation{public: CCalculation(void); CCalculation(const do...
2019-12-13 22:40:43 4054 3
原创 MFC-Serialization序列化保存、打开线段和多段线
题目描述:现有实体line和polyline,需要将这些实体序列化输入和输出,通过对话框保存和打开。一、保存模型数据(序列化)void CEncloseAreaDlg::OnBnClickedButtonSavedata(){ // TODO: 在此添加控件通知处理程序代码 if (!m_bFilePath) { AfxMessageBox(_T("请您先导入数据!"))...
2019-08-26 08:29:05 525
原创 第九周ARTS
2018.10.20~2018.10.21每周完成一个ARTS:每周至少做一个LeetCode的算法题,阅读和点评至少一篇英文技术文章,学习至少一个技术技巧,分享一篇有观点和思考的技术文章(也就是algorithm ,preview ,tip,share 简称ARTS)需要坚持至少一年。一、algorithm:530.二叉搜索树的最小绝对差解答:class Soluti...
2019-08-19 09:57:38 191
原创 MFC 给不规则的多边形闭合区域填充颜色
问题描述:现有多个由线段line汇成的闭合区域,将每个区域使用不同的颜色填充。实现的完整代码://绘制图形 // find the client area CRect rect; GetClientRect(rect); // draw with a thick blue pen CPen penBlue(PS_SOLID, 2, RGB(0, 0, 255)); CP...
2019-08-19 09:52:17 4409 1
原创 每周完成一个ARTS-第十六周-2019-8-17
每周完成一个ARTS: 每周至少做一个LeetCode的算法题,阅读和点评至少一篇文本技术文章,学习至少一个技术技巧,分享一篇有观点和思考的技术文章(也就是Algorithm ,Review ,Tip,Share 简称ARTS)需要坚持至少一年。一、Algorithm问题描述:移除无序数组中重复的元素#include<iostream>using namespace...
2019-08-18 16:45:12 145
原创 [计算几何]-判断一个点是否在闭合区域内 C++
//判断点是否在闭合区域内bool IsPointInPolygon(Point p, vector<Point> points){//vector<Point> points:表示闭合区域由这些点围成 double minX = points[ 0 ].x; double maxX = points[ 0 ].x; double minY = points[...
2019-08-17 10:54:31 2774
原创 [计算几何]-去除重叠的闭合区域(C++)
题目描述: 在图形开发过程中,需要求最小闭合区域,当获得了所有的闭合区域后,有一部分区域是重叠的,现设计算法将重叠的区域删除。(此算法类似于 删除无序数组中重复的元素)//去除重叠的图形std::vector<std::vector<CLine>> removeOverlapArea(vector<vector<CLine>> Clos...
2019-08-17 09:09:21 1441
原创 git clone到本地仓库出现错误-fatal: the remote end hung up unexpectedly 解决方法
主要是由于网速太慢的原因,调整网速的限制范围即可:
2019-08-10 22:06:12 2451
原创 每周完成一个ARTS-第十五周-2019-8-4
每周完成一个ARTS: 每周至少做一个LeetCode的算法题,阅读和点评至少一篇文本技术文章,学习至少一个技术技巧,分享一篇有观点和思考的技术文章(也就是Algorithm ,Review ,Tip,Share 简称ARTS)需要坚持至少一年。一、Algorithm题目:数字在排序数字中出现的次数 统计一个数字在排序数组中出现的次数。例如,输入排序数组{1,2,3,3,3,3,...
2019-08-04 17:46:36 247
原创 [计算几何] 拆分所有的线段-将所有的相交线线段拆分开,得到新的线段集合
//分割所有的线段,得到新的线段数组vector<CLine> CMinimumClosedArea::breaklines(vector<CLine> input){ vector<CLine> lines; lines.clear(); lines = input; vector<CLine> output; output.cle...
2019-08-03 21:09:39 785
原创 每周完成一个ARTS-第十四周-2019-7-31
每周完成一个ARTS: 每周至少做一个LeetCode的算法题,阅读和点评至少一篇文本技术文章,学习至少一个技术技巧,分享一篇有观点和思考的技术文章(也就是Algorithm ,Review ,Tip,Share 简称ARTS)需要坚持至少一年。三、TipMFC-序列化(Serialization)程序效果:CEmployee.h#pragma once// CE...
2019-07-31 07:59:19 199
LearnOpenGL网站的源代码 2020.10.28最新版
2020-10-28
C++编写的表白小程序(图片围成爱心+烟花+音乐).rar
2019-12-25
在ObjectARX(VC)中使用MFC-可停靠窗体 DockControlBar项目源代码
2018-08-17
数字化成图:最新AutoCAD地形图测绘高级开发/徐泮林 pdf
2018-08-17
AutoCAD ObjectARX(VC)开发基础与实例教程很新版 无 著作 张帆 等 编者
2018-08-17
C++数据结构与算法 (第4版)Adam Drozdek 著;徐丹,吴伟敏 译 PDF电子书下载 带书签目录 完整版
2018-02-22
C++ Primer中文版 第5版
2018-02-22
C++ Primer习题集 第5版__(美)李普曼,(美)拉乔伊,(美)默著_北京:电子工业出版社
2018-01-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人