随笔分类 - c++
摘要:在使用第三方代码库时,有时候需要访问某个类的函数或者变量,但该对象是保护或者私有的,导致无法正常访问。其实,通过一个简单的友元friend类或函数,可以轻松突破编译器的限制。下面是代码实例。假设第三方库有person类,定义如下。 class Person { private: int age =
阅读全文
摘要:libdxfrw和LibreDWG都可以用来读写dwg文件。 从git上下载libdxfrw之后,可以直接打开sln文件进行编译,或者通过cmake进行编译。 LibreDWG代码中很多gcc特有的语法,在windows系统下cmake之后,很难用vs编译通过,有两种解决手段。 1、用qtcreat
阅读全文
摘要:如果在网上搜索CListCtrl如何选中并高亮特定行,那么通常是如下的解决方案: 1、设置控件属性 listCtrl.SetItemState(index, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); listCtrl.S
阅读全文
摘要:具体的原因和做法可以参考这一篇博客 MFC DLL如何响应PreTranslateMessage消息 需要注意的是,钩子函数是在整个dll的app进入时统一设置的。因此,在每个具体的对话框类中响应PreTranslateMessage函数时需要注意消息的窗口是不是当前的窗口,即在该函数里面需要做如下
阅读全文
摘要:在使用CMFCPropertyGridCtrl控件时通常会遇到COleVariant向基本数据类型转换的问题,主要是int double string(cstring)这三种类型。转换方式总结如下。 对于int型 COleVariant v; int a = v.lVal; 对于double型 CO
阅读全文
摘要:在创建mfc个控制时,可以指定风格,通常都会包含有_FLAT和_3D,通常我们选_3D风格的,效果如下。 FLAT 3D
阅读全文
摘要:在Revit中,Selection类负责交互选择,Tekla中则由Picker类完成。 按照选择对象的不同,可以分为如下几类。 1、纯几何点选择。 单点选择,返回用户在空间点取的点。可以传入一个字符串作为提示。 Selection.PickPoint Picker.PickPoint Selecti
阅读全文
摘要:mfc在mdi模式下可以很方便的实现多文档多视图,但是如何实现单文档多视图呢?例如对于一堆数据,我们既想以文本的方式显示,同时也想支持表格或者图形的展示方式,这就是单文档多视图的主要应用场景。参考侯俊杰的《深入浅出mfc》,主要的实现思路总结如下。 1、编写视图类编写继承自CView的MyView,
阅读全文
摘要:记得在使用低版本的vs时是可以生成Generated Files文件夹的,但在使用vs2019配合最新版本(2.4.2)的Qt VS Tools发现无法生成该文件夹,感觉非常奇怪。在网上一通搜索,找到了这篇Qt VS Tools 2.4版本功能改进的说明,https://www.qt.io/blog
阅读全文
摘要:gtest是谷歌发布的单元测试框架,功能强大。结合谷歌源代码附带的例子,把注意事项简单总结如下。 1、单元测试是如何启动运行的 每个单元测试的项目都是一个exe,而exe必然要有main作为入口函数。gtest有两种引入main的方式。 方式1,添加对gtest_main.dll动态库的引用,该库实
阅读全文
摘要:智能指针(shared_ptr,unique_ptr)作为函数参数或者返回值时的一些注意事项 当智能指针作为函数的参数或者返回值时,一直在纠结到底是用智能指针对象本身还是用原始指针。Herb Sutter大师的文章很好的解决了这个疑惑,参见网址: https://herbsutter.com/201
阅读全文
摘要:支持BMP GIF JPG JPEG PNG PBM PGM PPM XBM XPM各种图片格式相互转换的小软件。 链接:https://pan.baidu.com/s/1yNGcTElgzXd-ebP2C9-JeQ 提取码:j35t
阅读全文
摘要:opencascade源代码可以从官网上下载,使用cmake的编译过程也比较简单。但由于occ需要依赖很多第三方库,所以这些库在编译occ源码之前要配置完毕。第三方库的名单在软件下载页面上也有罗列,可以对照该列表去下载。其中Freetype的库我的电脑上没有安装,因此需要先下载Freetype的源码
阅读全文
摘要:在github上下载assimp源码之后,可以用cmake进行vs解决方案的构建。但是用cmake gui只能构建32位版本的解决方案,如何利用cmake命令行构建64位版本可以参考该博客。默认情况下assimp的CMakeLists.txt文件ASSIMP_BUILD_SAMPSAMPLES选项是
阅读全文
摘要:最进要用vs建立一个解决方案,同时也要依赖一些第三方库,为了以后便于维护,因此想让解决方案的各个文件夹的组织更加合理。通过网上搜索一些网友的解决方案,发现大致可以分为两种,分别参见网址https://blog.csdn.net/lp310018931/article/details/47991759
阅读全文
摘要:最近需要研究一下glc_player和glc_lib的源代码,在代码编译的时候走了一个小弯路,主要是库版本匹配的问题,总结如下。先是在glc_player和glc_lib的官网上下载了源代码,http://www.glc-player.net/ 和 http://www.glc-lib.net/。g
阅读全文
摘要:std::max、std::min error C2589: “(”:“::”右边的非法标记,error C2059: 语法错 原文见这里。
阅读全文
摘要:在这一篇文章中讨论了跨DLL的动态内存分配与释放问题。 c++跨动态库DLL的内存分配与释放问题 今天在看VTK的源代码时,突然得出了一个关于内存分配的原则,在C++的动态库设计时可以参考。总结成一句话就是:把所有动态分配的内存的指针都封装到类里面,对用户通过接口暴露。这样就可以避免在A.dll中分
阅读全文
摘要:在使用模板类的静态变量时遇到了一个问题,现在总结如下。 对于钢筋、型钢、混凝土等类似的有限个类型的数据结构,可以统一采用Factory Method设计模式,通过Create(结构类型)静态函数构造。 为此,设计一个模板基类如下: FiniteClassBase.h template<</span>
阅读全文

浙公网安备 33010602011771号