MFC
文章平均质量分 66
sanqima
这个作者很懒,什么都没留下…
展开
-
VS2019安装MFC组件
VS2019支持的MFC版本是mfc140 ~ mfc142版本,它兼容VS2015、VS2017之前的老版本程序。VS2019支持的C++最高版本为C17,是Win7系统上最后一个可以安装的IDE。原创 2024-07-20 12:02:05 · 2151 阅读 · 0 评论 -
SQLServer设置端口,并设置SQLServer和SQLServer Browser服务
SQLServer默认使用动态端口,即每次启动sqlserver.exe时,端口port都会动态变化。若要使用静态端口,比如port=1433,则需要在SQL Server Configuration Manager(简称SSMS)里配置。这里以SQL Server 2005 Configuration Manager软件为例,进行说明.原创 2024-01-07 17:29:15 · 4974 阅读 · 0 评论 -
解决“SQLServer 添加数据库,报Error 5118“错误
当将把一个SQLServer数据库文件*.MDF和日志文件*.LDF,从电脑A拷贝到电脑B,然后在电脑B上,使用Microsoft SQL Server Management Studio添加该*.MDF文件,有时报"Error 5118"错误;出现这种问题的原因:当前文件采用压缩格式保存,需要取消这种压缩格式;解决方法:右击该*.MDF文件 --》属性 --》高级 --》去掉"压缩"--》应用 --》OK同理,右击该*.LDF文件--》属性 --》高级 --》去掉"压缩"--》应用 --》OK原创 2024-01-06 17:12:33 · 863 阅读 · 0 评论 -
解决SQLServer访问*.mdf文件“报Unable open file Error5120“问题
今天,在使用Microsoft SQL Server Management Studio附加Hello_Data.MDF数据库时,弹出“Unable to open the physical file *.MDF system error 5 Error:5120”错误;出现该问题的原因:当前用户对Hello_Data.MDF、Hello_Data.LDF没有读写权限。原创 2024-01-06 16:36:56 · 1281 阅读 · 0 评论 -
解决“_mkdir无法识别空格目录“问题
在C++编程里,有时候需要创建一个文件夹,通常使用库函数_mkdir(const char* dirname)来新建一个文件夹,该库函数每次只能创建一个文件夹,不能级联创建。若要级联创建文件,则请用递归方式或者for循环方式调用_mkdir()。空格的等效替换为\40.原创 2023-07-09 10:23:05 · 441 阅读 · 0 评论 -
PlaySound的同步播放与异步播放
PlaySound是Windows平台独有的API函数,支持mp3、 mp3, mp2, mp1, ogg, flac, oga, ac3, aac, wav 和pcm等音频格式文件的播放,使用的库文件为winmm.lib,该库文件是Windows自带的库文件,只需要申明即可,不需要手动添加。它分为同步方式、异步方式2种。具体如下:点击Visual Studio工具栏的[File] --》新建 --》Visual C++ ---》Win32 --》Win32控制台应用程序 --》名称:DoPaly原创 2022-09-30 08:41:53 · 3611 阅读 · 0 评论 -
C++里sscanf()与swscanf()的使用
在C++中,常常需要对字符串进行分隔,可以使用string里的substring()+Find()的方式进行分隔,也可以使用sscanf、swscanf的方式进行分隔。可以看到substr()、sscanf()、swscanf()这3个库函数,在提取字符串方面是等价的。......原创 2022-08-27 11:21:50 · 1120 阅读 · 0 评论 -
将CString里的连续字符串压缩为一个
在做字符串解析时,有时候需要去掉字符串的首部、尾部空格,同时将中间连续的空格压缩为一个。在MFC中,借助CString的库函数TrimLeft()、TrimRight(),分别可以去掉首部、尾部的空格,对于中间的字符串空格,则需要手动编写函数来处理。比如,字符串A = " 100 300 500 888 666 ",要将字符串A的首部100前面的空格、尾部666后面的空格都去掉,同时,需要将子串“100 300”里中间的2个空格压缩为1个,"500 888"里中间的3个空格压缩为1个,并实现...原创 2022-08-14 09:55:28 · 440 阅读 · 0 评论 -
使用vscode查看Hex或UTF-8编码
vscode是一个跨平台、支持多种语言、插件非常的IDE,用它来查看源代码、查看文件的hex或UTF-8编码,非常方便。这里推荐vscode里查看hex或UTF-8的插件:Hex Editor,具体如下。 打开vscode,点击左侧的田字图标 --》在"扩展商店"里,输入 hex,选中Hex Editor —> 安装即可。 将要查看的文件,拖入vscode,比如将hello.txt 拖入vscode --> 在vscode的Tab页里右击hello.txt --> 重新打开编辑器的方式.原创 2022-07-03 09:04:32 · 11271 阅读 · 0 评论 -
用VScode绘制函数调用流程图
在C++编程中有时候需要画出多个class类之间的调用关系,可以使用Visio画UML类图来实现,也可以使用VScode的函数头+箭头来实现。这里介绍使用VScode里的函数头+箭头来绘制调用流程图。原创 2022-05-28 08:56:15 · 23473 阅读 · 1 评论 -
解决“VS 报No such file or directory“问题
今天在使用VS2015的calcOne工程,将工程由Debug版本改为Release版本,编译时弹出"无法打开包括文件: 'addFunc.h': No such file or directory"错误,如图(1)所示:但是,将工程由Release版本改回到Debug版本,却编译成功。从而判断是Release、Debug这2个版本的编译环境有差异。...原创 2022-05-17 09:10:57 · 20101 阅读 · 0 评论 -
C++基本数据类型的字节数、范围大小、溢出处理
C++有几种基本的数据类型:char、int、float、double,这些数据类型的字节数、范围大小根据操作系统、编译器的不同而不同。- 在Windows上,同一种数据类型,其win32与win64的字节数是一致的;比如,int在win32、win64都是4个字节。- 在Linux上,大部分数据类型,其32位与64位的字节数是一致的;只有long类型的不相同。比如,float在32位、64位的Linux上,都是4个字节。...........................原创 2022-05-11 12:35:46 · 7038 阅读 · 0 评论 -
解决“‘inet_addr‘: Use inet_pton() or InetPton() instead “问题
今天在使用Windows Socket C++编程时,弹出"‘inet_addr’: Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS"问题,如图(1)所示:图(1) Socket2报兼容性错误 问题原因:socket2已经丢弃inet_ntoa()、inet_addr()这些老版本函数,当在Socket2上调用这些老版本(Socket1版本)函数时,warning变成er原创 2022-05-08 08:44:17 · 6904 阅读 · 1 评论 -
解决“const char[]类型没有+操作符“问题
MFC的Unicode字符集对(const char A + "") 字符串的+加号重载功能,不稳定,改用str.Format("%s%s", strA,strB)来实现2个字符串之间的连接。原创 2022-05-02 21:38:00 · 585 阅读 · 0 评论 -
VS2015安装VC++帮助文档,并设置桌面快捷启动
VS2015的MSDN帮助文档包括.Net、Visual C++、Visual Basic、Visual C#等,有8.8G,解压后有14G,这个文件太大了。由于当前项目只使用C++,所以只安装C++相关的帮助文档即可,有69M,解压后146M,相比之前的14G = 14*1000M >> 146M,已经非常小了。 这里只介绍VC++单语言的help文档安装方法,详细如下。1、以[查看器]方式打开文档窗口 VS2015默认以浏览器(google)方式打开帮助文档窗口,这原创 2022-03-27 23:30:29 · 6356 阅读 · 0 评论 -
OCCT里的Mesh网格计算流程
Open CasCade Technology简称OCCT, 在OCCT中有2中网格转换器:1) VRML转换器作用:将Open CASCADE形状翻译成VRML 1.0文件(虚拟现实建模语言)Open CASCADE形状可以被翻译成两种表现形式:阴影或线框。阴影表示法将形状表现为由网格算法计算的三角形集合,而线框表示法将形状表现为曲线集合。2) STL转换器作用:将Open CASCADE形状翻译成STL文件。STL(STtereoLithography)格式被广泛用于快速原型设计。原创 2022-03-18 10:59:59 · 1539 阅读 · 0 评论 -
win10安装OpenCasCade并绘图测试
OpenCasCade是一个开源的三维建模引擎,可以开发CAD、CAE、CAM对应的程序。下面介绍在win10安装OpenCasCade V7.5.0。OpenCasCade分为源码版本,以.tar.gz结尾,而安装版本是以.exe结尾。本文选择.exe版本,即安装后,直接可以使用。1 、下载OpenCasCade v7.5.0 地址: https://dev.opencascade.org/release/previous#node-40259图(1) 下载OpenCasCade原创 2022-03-14 14:26:46 · 1862 阅读 · 0 评论 -
解决“VS2015安装包丢失或损坏“问题
在Win7或Win10上,安装VS2015时,有时报"安装包丢失或损坏"错误。出现这种错误的原因是当前的系统上缺少了2个证书,把这个2证书安装后,再安装或修复VS2015即可。步骤如下:1、跳过包 当出现"安装包丢失或损坏"报错时,请点击【跳过包】,然后一路默认,直到安装完成。每次出现报错,请都选择【跳过包】2、安装2个证书 地址: https://share.weiyun.com/7b583015ba5f4196d7b8508640e5ef27 将这个zip文件解压后,原创 2022-03-13 07:57:22 · 7412 阅读 · 0 评论 -
win10安装VS2015
VS2015是一个非常好用的开发平台,支持C、C++、C#、F#等语言,下面介绍在win10系统上安装VS2015。1 下载VS2015 在 MSDN i tell you 里找到VS2015专业版,复制器ed2k地址,然后使用迅雷下载即可。 VS2015专业版的ed2k地址:ed2k://|file|cn_visual_studio_professional_2015_x86_x64_dvd_6846645.iso|4125556736|6EECD10D20D74704C919原创 2022-03-12 07:18:59 · 3765 阅读 · 0 评论 -
VC++中用API调用对话框资源
在VC++中为对话框添加资源,使用API函数原创 2014-07-18 19:57:49 · 3139 阅读 · 0 评论 -
解决“unhandle exception ... MFCO42D.DLL”问题
在用MFC编程时,有时会遇到如下情况: 图(1) Unhandled exception MFCO42D.DLL出现该问题的原因是:没有把工程设置为“Use MFC in a Static Library”。 解决方法: 1)点击VC6.0工具栏上的【Project】 –> Setting –> 在General选项卡:选择”Use MFC in a Shared DLL” –> OK,如原创 2015-07-09 21:43:26 · 4057 阅读 · 0 评论 -
解决"VC6.0的ClassView里不能显示类或成员变量"问题
VC6.0是微软1998年发布的,是一款很经典的编辑器,然而它有几个很常见的bug,比如, .cpp文件打不开,智能提示出现异常,这里介绍“VC6.0的ClassView里不能显示类或成员变量”问题的解决方法。详细步骤如下: 1) 关闭VC6.0,找到工程目录里的.clw文件,按Del键删除该 .clw文件,如图(1)所示: 图(1)按Del键删除.clw文件 2)打开VC6.原创 2015-06-03 18:17:07 · 2720 阅读 · 1 评论 -
Ansys10.0读取命令流文件
在Ansys中,命令流通常由ANSYS命令和APDL功能语句组成。APDL(ANSYS Parametric Design Language)为ANSYS参数化设计语言。APDL是用来自动完成某些功能或建模的类似于FORTRAN的解释性语言,提供一般程序语言的功能。它包含三个方面的内容:工具条、参量和宏命令。灵活运用这三种工具,可以实现快速操作,数据快速传递、更新等功能。 APDL最强有力的特...原创 2015-05-27 20:03:25 · 13838 阅读 · 0 评论 -
解决VC6.0点击"Add Files to Folder"用不了问题
不知道从什么时候开始,VC6.0+sp6不听使唤了,表现为:在工程的Source Files(其他如Header Files相同)右键->”Add files to folder” 系统没有反应,同样在File->Open 也是没有任何反应。重新安装VC后现象依旧。通过网上搜索,发现出现这个问题的人还挺多,原因解释为:VC6.0与Offices2007有冲突。 如果想让VC6.0和Offic原创 2015-05-15 12:34:09 · 5876 阅读 · 0 评论 -
汉化InnoSetup5.5
Inno Setup是一个开源的打包工具,可以很方便地制作软件的安装向导。下面介绍它的汉化方法。 将下面的代码保存为 Chinese.isl,再将Chinese.isl放到..\InnoSetup\Language目录下即可完成汉化。原创 2015-04-30 21:33:51 · 2390 阅读 · 0 评论 -
GUI设计9个原则(第三篇)
基本原则7: 传进信息,而不仅仅是数据 基本原则8: 设计应满足响应需求 基本原别9: 通过用户试用发现错误,然后修复它7) 原则7: 传进信息,而不仅仅是数据 计算机承诺了一种信息来源。但是它们主要传递的是大量的数据……绝大部分都是无用数据。数据不是信息。人们需要从数据中提取信息。 软件应用程序通常把数据当作信息。它们把数据都扔给你,让你自己查明它们意味着什么。软件应当将用户的注意翻译 2015-05-09 18:46:09 · 3952 阅读 · 1 评论 -
GUI设计9个原则(第一篇)
基本原则1: 关注用户及其任务,而不是技术 基本原则2: 首先考虑功能,然后才是表示 基本原则3: 与用户对任务的看法保持一致 基本原则4: 设计要符合常见情况 基本原别5: 不要分散用户对他们目标的注意力 基本原则6: 促进学习 基本原则7: 传进信息,而不仅仅是数据 基本原则8: 设计应满足响应需求 基本原别9: 通过用户试用发现错误,然后修复它1)原则1:关注用户及其任务,而不翻译 2015-05-09 18:55:27 · 8095 阅读 · 0 评论 -
GUI设计9个原则(第二篇)
基本原则4: 设计要符合常见情况 基本原别5: 不要分散用户对他们目标的注意力 基本原则6: 促进学习4)原则4:设计要符合常见情况 在任何任务领域中,用户都有各种目标,从常用目标到很少发生的目标。应用程序应当设计为能够识别这些目标。 4.1 使得易于实现常用的结果 如果用户的目标是可预测的且常用的,用户就不应为了实现这个目标而必须做很多工作。如果目标是不常见的,则可以要求做更翻译 2015-05-09 19:00:07 · 2617 阅读 · 0 评论 -
使用InnoSetup打包安装程序
在C++项目编译完成后,会生成一个.exe文件,还有一些图标文件,比如.ico、.dll等等。可以使用InnoSetup这些文件打包成一个setup.exe。 详细步骤如下: 1. 打开Inno Setup,点击工具栏上的【文件】/ 新建–》【下一步】,如图(1)所示: 图(1) 使用Inno Setup脚本向导 2. 设置打包后的应用程序名称、版本、发布者和应用程序网址,如图原创 2015-04-21 16:18:11 · 3215 阅读 · 0 评论 -
批量删除VC6.0中的临时文件
在VC6.0中,选择工具栏上的【Build】–> Clean,可以直接删除Debug目录里的临时文件。这种方法只能删除单个工程里的临时文件,如果要删除多个工程里的临时文件,则需要使用批处理命令来进行批量文件删除。代码如下:del *.obj *.pch *.sbr *.pdb *.idb *.ilk *.ncb *.opt *.bsc *.res *.exp *.lib *.aps/s1)将上述代码原创 2015-07-11 18:01:32 · 1789 阅读 · 0 评论 -
用UltraEdit比较两个文件
在编写代码的过程中,常常碰到两个文件之间的逐行比较,特别是新代码与源代码之间的文字比较,这里介绍用UltraEdit实现新代码与源代码之间的比较方法。 //源代码:Bearing.mac FINISH/CLEAR/FILNAME,Bearing,1/PREP7 /TITLE,3D modelBLOCK,0,2.5,0,1,0,2 WPOFF,0,1,2 WPROT原创 2015-07-25 14:52:28 · 26296 阅读 · 1 评论 -
桥梁结构的ANSYS参数化分析
桥梁是现代建筑中最重要的结构形式之一,它对一个区域的政治、经济、文化有着重要的影响,现代桥梁正向着长距离、大跨度方向发展;目前的大跨度桥梁主要有斜拉桥以及悬索桥两种形式;例如,法国于1995年建成的Normandie大桥就是大跨度斜拉桥,有184根拉索,主跨长度达到864m,桥面高度为51m,使用了1万9千吨钢材,7万立方米的混凝土。 现代桥梁设计的一个重要特点就是需要采用精确的有限元方法对桥进行力学分析。原创 2015-07-24 15:52:05 · 7014 阅读 · 0 评论 -
vs2008里批量删除历史记录与.ncb、.obj等文件
使用vs2008时间长了,在文件列表有很多的文件记录、在工程列表里也有很多工程记录,到注册表里的HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0已查看, 发现这些记录保存FileMRUList、ProjectMRUList子项下,这些记录既可以手动删除,也可以用.bat删除。清除历史记录的批处理如下: //Clear_History.b原创 2017-07-28 13:51:25 · 1326 阅读 · 0 评论 -
设置电脑分屏显示的4种情况
在笔记本上编程时,由于屏幕太小只有14寸,不方便编写和查看源代码,所以买了一个19寸的液晶显示器,这时就需要用到鼠标右键里【屏幕分辨率】来进行分屏显示。如图(1)所示: 图(1) 右击桌面的空白处–> [屏幕分辨率] 硬件设备:14寸笔记本 + VGa线一根 + 19寸液晶显示器 软件:Win7 步骤如下: 1)用VGa线将笔记本和19寸液晶显示器连接起来,一般VG原创 2015-08-16 20:46:00 · 29590 阅读 · 0 评论 -
win7下用VC6.0连接MySQL5.1数据库
软件环境: Win7 64位 + MySQL5.1 + VC6.0 在VC中调用MySQL数据库时,需要用到MySQL5.1安装位置的include目录和lib目录,还有libmysql.lib文件。 一、在VC6.0里,设置数据库的连接环境 1.1) 设置Include目录和Lib目录 点击VC6.0工具栏上的【Tools】–> options –> Directories原创 2015-12-03 18:55:41 · 1712 阅读 · 3 评论 -
使用Adobe Acrobat设置pdf的页码
使用Adobe Acrobat可以调整和设置pdf的页码,一般把封面和索引用罗马数字标注,把正文部分用阿拉伯数字标注。 当然,也可以在Adobe Acrobat的“页面缩略图”里,手动地调整各个pdf页面之间的顺序。找到需要调整页面顺序的页面,选中,如果是连续的多页调整,可以使用shift或者ctrl键选中之后调整。调整的方法很简单,只需要按住鼠标拖动到需要的位置放开即可。原创 2015-12-17 10:12:31 · 34847 阅读 · 2 评论 -
VC++6.0中导入其他工程的对话框资源与CXXXDlg类
这里以基于MFC的对话框工程: Hello为例,将工程Hello里的对话框资源IDD_HELLO_DIALOG和对应的类CHelloDLg,导入到myWord对话框中。 1)首先要生成一个*.ogx的文件。 在ClassView面板,右击CHelloDlg –》Add to Grallery –>OK,如图(1)所示: 图(1)右击CXXXDlg –> Add to Grallery导原创 2015-11-27 21:11:28 · 5513 阅读 · 1 评论 -
用Tab控件实现加减乘除
软件环境:Win7 64位 + VC6.0 使用MFC里的Tab控件,可以实现加减乘除。效果如下: 图(1) 用Tab控件实现加减乘除 详细步骤如下: 1)打开VC6.0,新建一个基于MFC对话框的工程:addSub,在Resource View里,先清空对话框上的控件,然后,为对话框拖曳一个Tab控件,如图(2)所示: 图(2) 为对话框拖曳一个Tab控件 2)原创 2015-11-25 17:19:18 · 1096 阅读 · 0 评论 -
在MessageBox()里输出时间
弹出对话框函数MessageBox()的原型如下:int MessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType原创 2015-11-01 20:43:29 · 2306 阅读 · 0 评论 -
将时间字段分割成yyyy、mm、dd格式
对于”yyyy-mm-dd”的字符串,从中分割出年份yyyy、月份mm、天数dd,可以用MFC的STL类库std::vector<CString>里的TrimLeft()进行操作。 函数如下: void Split(const CString &text,const TCHAR* separator, std::vector<CString>原创 2015-11-16 22:15:52 · 1607 阅读 · 0 评论