MFC
李同学_~
软件工程师,MFC,Linux应用层,QT,java后端
展开
-
MFC组合框实现多列组合框功能
也可实现组合框复选框一起使用,具体请自行更改代码,注:此篇代码转至Mihai Filimon,具体链接已不可见;侵删。示例如图:使用本控件的步骤如下:在对话框编辑器中添加定制控件,并声明其类型为MultiColumnComboBox。 再在OnInitDialog中添加下面代码: m_combo.SubclassDlgItem(IDC_CUSTOM1, this), /************************************ REVISION LOG ..原创 2021-12-09 09:37:49 · 688 阅读 · 0 评论 -
关于MFC应用程序在Win10系统下调用WINDOWS API失效问题
问题描述:应用程序在WIN10系统下调用SetLocalTime()函数,更改系统时间失败问题原因:更改系统时间这类操作需要使用管理员身份运行,常规MFC应用程序,如果不设置为“以管理员身份发布”,那么调用此类函数没有权限;解决方法:VS2017软件下,项目-》属性-》链接器-》清单文件-》UAC执行级别,选择为“requireAdministrator (/level='requireAdministrator')”...原创 2021-07-30 09:49:30 · 958 阅读 · 0 评论 -
MFC中CComboBox显示全部下拉列表内容,该如何解决
在画界面那儿,选中 CComboBox ,鼠标移到控件的箭头上,当光标为双向箭头时。再点击.那八个小方框围成的矩形区域,可以把它拖高,就能实现全部显示,如下图所示原创 2020-05-12 09:41:37 · 4001 阅读 · 4 评论 -
打开资源文件时提示fatal error RC1015:cannnot open include file 'bcgrores.h'
描述:VS2015 MFC工程打开rc资源文件时,提示致命错误不能打开,如下图所示;解决办法:bcgrores.h是我VS工程中用的一个BCG插件的头文件,后来电脑重装系统插件就没安装,结果就打不开,重新安装插件就好了。...原创 2020-03-10 08:27:11 · 576 阅读 · 0 评论 -
VS 2015部署应用程序提示“应用程序无法正常启动( 0x0150002)” 解决方案
问题描述:MFC编写的应用程序,电脑重新做一遍系统之后就打不开了,提示如下图所示,应用程序无法正常启动( 0x0150002),解决过程:1.通过查看Windows日志中的应用程序发现,原因为ControlCAN.dll的激活上下文失败。2.查看“控制面板”-“程序”-“卸载程序”中发现Microsoft C++ 2005 等好多的微软常用运行库缺失;解决办法:在360的软件管家中...原创 2019-12-30 09:48:17 · 1692 阅读 · 0 评论 -
QT中调用共享库时加载库成功,加载库中函数时提示失败的解决办法
问题说明:TranBaowenInfo.dll 是自己编写的动态链接库,库中导出函数名为GetTranslateInfo(),调试时一直提示加载库成功(ok dll),但是加载库中导出函数一直失败(shibai func)。 typedef bool (*getTranslateInfo)(Tran_ptCIR_Frame, QString, COLORREF, ...原创 2019-12-03 14:44:39 · 2374 阅读 · 2 评论 -
Qt与VS相同作用函数汇总
1.QString 与CString 格式化输出 VS : CString str.Format(L"%d",n); QT : QString str.sprintf("%d",n);2.QString 与CString十六进制强制转换VS :CString str = L"0x12";unsigned char n = _tcstol(str, NU...原创 2019-12-03 14:20:24 · 844 阅读 · 0 评论 -
Debug下正常,而Release失败的原因
关于Debug和Release之本质区别的讨论一、Debug 和 Release编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(...转载 2019-11-01 11:40:20 · 2600 阅读 · 0 评论 -
MFC 堆栈问题-Debug无错误,Release报错误
问题:编写的MFC程序Debug时无错误;Relesse版本中提示debugHeap.cpp中 888行错误,其实就是堆被破坏,并且定位到了一个奇怪的地方,如下图:问题重现:在此MFC程序中我调用了自己编写的外部动态库,外部接口为GetTranslateInfo(TF, sTranslate, SimpleInfoColor, arrDetailInfo);函数。经调试显示进入函数中向...原创 2019-11-01 10:33:52 · 680 阅读 · 1 评论 -
关于调试错误 Assertion Failed 问题
在VC、MFC工程中 ,编译没有错误,但是在调试时会出现Assertion Failed错误,比如 Assertion Failed afxwin2.inl Line139 ,这种错误往往定位不到错误点,以至于不好查找,下面以此问题为例,说一下如何解决:1.首先找到afxwin2.inl,此文件一般在软件的安装目录下,可在软件安装目录文件夹下使用搜索功能,查找该文件,找到后将文件拷贝到其...原创 2019-08-01 10:47:04 · 16322 阅读 · 0 评论 -
用自己写的类库声明变量时,出现未知重写说明符,缺少类型说明符等解决办法
前提:调用自己写的类库,在工程中添加了头文件,也包含了头文件,但是在声明中一直提示错误,情况如下:1.工程添加头文件2. 包含头文件3. 声明时一直报错4.编译时提示未知重写说明符以上 就是我在使用自己编写的类库时出现的情况,下面我来说一下解决办法:1.将#include "serialcom.h"改为class _thread_com;2. 将声明...原创 2019-01-07 09:03:26 · 3572 阅读 · 1 评论 -
MFC中Debug无错误,但是Release版本提示无法解析外部符号错误问题及解决办法
问题描述:在Client客户程序中调用自己写的动态外部链接库,Debug版本不报错,但是Release版本提示无法解析外部函数 解决办法:1.情况一:没有在工程Release文件夹下粘贴相应的Dll文件,需要注意的是放在Release文件下的Dll文件,必须是在链接库工程中生成的Release文件,不能使用Debug版本的文件放在Release文件夹下。2.情况二:没有在工程存放源...原创 2018-12-03 10:19:00 · 5367 阅读 · 1 评论 -
MFC弹出菜单栏后,鼠标左右键都能点击问题
问题描述:弹出菜单栏后,鼠标左键以及右键都能点击菜单栏中的项目?解决办法:检查自己加载菜单栏的程序, TPM_LEFTBUTTON定义为智能鼠标左键选择,而另一个则可以鼠标左右键同时选择菜单栏项目; ...原创 2018-11-16 09:57:10 · 497 阅读 · 0 评论 -
VS程序中关于预编译头的问题
莫名其妙的错误:查了好久发现是预编译头的问题!!!!!!!!!!!!!!!!!!!!!!!!!牢记所有的预编译头#include "stdafx.h"一定要放在源文件最前方,不然会出现很多莫名错误!!!!!#pragma once放在头文件第一行,预编译一次...原创 2018-10-30 15:43:57 · 1785 阅读 · 0 评论 -
MFC中关于Encountered a sharing violation while accessing访问共享文件冲突问题及解决办法
问题出现: 在程序的文件操作中,我先将使用fread函数对文件读取,后再进行文件删除操作时出现Encountered a sharing violation while accessing错误,解决办法:在进行完文件读或者写操作之后,先使用fclose函数关闭文件,再进行删除操作,此类问题解决:...原创 2018-10-17 11:49:04 · 11053 阅读 · 0 评论 -
关于内存错误CRT detected that the application wrote to memory after end of heap buffer
今天Debug时突然出现 了内存错误的问题,单步查找发现用完了new出来的内存后,在delete p_zhizhen处出的问题。Debug报错的提示框是: 下面我来说一下问题出现原因以及解决办法:1.原因:在监视数据时发现,往new出来的数组中拷贝数据时出现了越界行为;2.解决...原创 2018-10-17 09:56:04 · 5109 阅读 · 0 评论 -
MFC界面设计----改变界面大小使其中控件随其界面大小变化的方法
【写在前面】 平常在编写界面程序时,使窗口中的控件随窗口大小改变而改变,只需调用WM_SIZE消息,在消息函数OnSize中进行处理,比如如下函数,就是使静态文本控件动态变化,但是这种方法计算繁琐不说,在改变控件位置时,此部分又需要从新计算,相当麻烦,下面我来介绍一下另一种方法。 if (GetDlgItem(IDC_STATIC2)) { ...原创 2018-10-10 10:21:31 · 2541 阅读 · 0 评论 -
MFC中为Edit编辑框添加滚动栏
以下几步:1.点击编辑框,之后打开编辑框属性界面2.将以下属性改为TRUE意思依次为:自动换行-自动水平滚动条-自动垂直滚动条-打开水平滚动条-打开垂直滚动条...原创 2018-06-26 15:32:51 · 2534 阅读 · 0 评论 -
MFC中创建非模态对话框相关问题
置顶:新手可以看看鸡啄米的如何创建非模态对话框,我只谈谈我遇到的相关问题链接:http://www.jizhuomi.com/software/162.html1.创建非模态对话框时可以在初始化函数中直接创建,创建完成后默认是隐藏状态,需要的时候调用显示函数显示出来就行;如下:BOOL CDlgFunction::OnInitDialog(){ CDialogEx::OnInitDialog...原创 2018-06-26 15:59:21 · 328 阅读 · 0 评论 -
MFC中关于报错error C2146: 语法错误: 缺少“;”(在标识符“stSoftRuningInfo”的前面)这种错误的问题
今天工程中突然报出了这种错误,百思不得其解,因为在我的结构体中,";"(分号)明明都有,却还是出错,而其他调用了 此结构体的函数却并没有错;如图,出现了好几十行解决办法:_SoftRuningInfo 是自己写的另一个结构体,我将其放在了_123结构体的后面,就出现了以上的问题,可能是VS软件内部调用机制问题,将_SoftRuningInfo 结构体的位置,调整到_123结构体之前,问题就解决了...原创 2018-06-28 16:03:34 · 2507 阅读 · 0 评论 -
MFC中DLL动态库创建时报错error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”
在使用VS2010编写运行时动态链接dll文件时出现的一个问题,问题解决得益于此文章:http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html通过调用这个函数:LoadLibrary出现的该问题。原因 :工程只支持UNICODE字符解决方法:1、在解决方案资源管理器中的工程上右键属性->配置属性-->常规--->字符集---->...转载 2018-07-12 09:24:43 · 1270 阅读 · 0 评论 -
MFC下DLL编程(图解)一定要认真看(包含了很多东西)
转载至https://www.cnblogs.com/19910101zj/p/4611695.htmlDLL(Dynamic Link Library,动态链接库)是微软公司为Windows和OS/2操作系统设计一种供应用程序在运行时调用的共享函数库。DLL是应用程序的一种扩展,也是软件共享和重用的传统方法。DLL除了可同时被多个应用程序共享外,还可以在不改变调用接口(从而不需修改使用它...转载 2018-07-13 08:33:05 · 31369 阅读 · 15 评论 -
MFC将其他工程创建的对话框导入到现有工程
1.点击软件左上角文件-添加-现有项目2.点击工程文件,就能在资源中看见你的对话框3.拷贝需要的对话框到现有工程4.复制对应的.h .cpp文件5.将resource.h中对应的ID复制过来6.删除添加的工程...原创 2018-07-19 10:31:33 · 1491 阅读 · 0 评论 -
VS中添加lib文件,以及出现LINK : fatal error LNK1104: 无法打开文件:×××.lib的解决办法
转载至https://blog.csdn.net/rznice/article/details/51657593添加库文件:在VS中右击项目点属性: 添加头文件目录: 配置属性-->C/C++-->常规-->附加包含目录 加上头文件存放的目录。 添加lib文件: 配置属性-->链接器-->输入-->附加依赖项加入库名(×××.li...转载 2018-07-19 16:05:23 · 24770 阅读 · 8 评论 -
vs2010 操作ini文档,写入和读出内容
转自:https://blog.csdn.net/wang18323834864/article/details/78615460在我们的程序设计中经常需要对一些参数进行配置,配置好后还要在下一次启动仍然有效,那么一个有效的可行办法就是使用ini文件,也就是Windows初始化文件来保存一些我们的设置,然后让程序启动的时候从这个ini文件中读取相关配置。我们需要做以下的工作。 1...转载 2018-08-14 13:13:24 · 1727 阅读 · 0 评论 -
VS中关于Debug Assertion failure 错误解决办法
目前,在我项目中出现这种问题一般有两种情况,1.野指针问题 野指针是特别头疼的一个问题,往往Debug也不好找出正确的位置,话不多说,上方法:Debug单步调试,当遇到死机那句时,查看窗口句柄是否为空NULL,如果为空,有三种可能1)可能是创建窗口对话框不成功,这时调用的时候就会出现句柄为空,死机的问题,在创建对话框Creat函数打断点,看是否创建成功了。2)调用的显示或者隐藏...原创 2018-08-16 08:57:08 · 13397 阅读 · 0 评论 -
【转载】MFC中的控件布局通用解决方案
转载至 https://blog.csdn.net/beanjoy/article/details/9146375 你是否遇到过这样的问题:用编译器拖出一些控件放到对话框上,并合理安排好了位置;但编译运行,改变对话框的大小后,所有控件的位置都乱了,让人感觉非常糟糕。如果控件不太多,你可以尝试手写代码定位每个控件的位置,但若是控件数量以十或百为单位计数甚至更多,逐一为每个控件...转载 2018-09-03 10:36:30 · 5695 阅读 · 0 评论 -
关于sizeof函数、memcpy函数以及结构体关于指针的问题汇总
1、sizeof()函数用于获取变量、类型等字节数。但是不能通过结构体指针获取结构体的字节数。使用会出现错误;比如: typede struct{ unsigned char yuliu[5]; unsigned char port;}_struct;_struct *pinfo;int length =sizeof(pinfo); //得到指针的字节数i...原创 2018-09-12 13:19:32 · 2726 阅读 · 0 评论 -
CString类常用方法----Left(),Mid(),Right()等
转自https://blog.csdn.net/eager7/article/details/11655977CStringLeft(intnCount)const; //从左边1开始获取前 nCount个字符CStringMid(intnFirst)const; //从左边第 nCount+1个字符开始,获取后面所有的字符CStringMid(intnFirst,intnCount)co...转载 2018-09-10 15:22:33 · 4502 阅读 · 0 评论 -
数据传递的方法--指针传递与memcpy函数传递
【写在前面】个人觉得在数据传递方面,指针传递要优于拷贝函数memcpy传递,以传递效率结果看两者速度是无法相比的,指针传递更迅速。 1.指针数据传递//将数组中的数据通过指针的方式传递typedef struct{ unsigned char data1[100];}_struct1;typedef struct{ unsigned char data2...原创 2018-10-15 14:48:00 · 3164 阅读 · 0 评论 -
关于mencpy函数使用的问题
mfc中使用mencpy函数出现了中断错误,仔细查找之后发现实拷贝函数的问题,使用拷贝函数在拷贝数组时,一定要事先判断一下两个数组的大小,不然会出现越界的现象,就会出现莫名的错误,记下来希望对新手编程有所帮助!...原创 2018-06-26 15:25:15 · 769 阅读 · 0 评论