visual studio & MFC
绿叶清风
这个作者很懒,什么都没留下…
展开
-
MFC 日志捕获、保存堆栈到日志文件
捕获异常 __try { int j = 0; int i = 1 / j; } __except (EXCEPTION_EXECUTE_HANDLER) { CString stackInfo; if (LogUtil::GetTraceStack(&stackInfo) != NULL) {//获取堆栈信息 LOG(ERROR) << "程序发生了错误:" << stackInfo;//将堆栈信息存到文件 }.原创 2021-12-13 18:03:49 · 994 阅读 · 0 评论 -
mfc 使用json11解析json字符串
完整代码链接JSON11基本用法如下: //JSON对象转json字符串 json11::Json my_json = json11::Json::object{ //json11支持的数据类型 { "keystr","value1" }, { "keybool",false }, { "keyint",5 }, { "keydouble",5.5}, { "keyarr", json11::Json::array { 1,...原创 2021-03-11 14:24:14 · 1492 阅读 · 0 评论 -
MFC操作注册表步骤
VC注册表的操作一般分为:创建写值打开读关闭VC操作注册表有两种方法:一种是使用VC封装好的CRegKey类一种是直接使用Windows的API:RegCreateKeyEx、RegOpenKeyEx、RegSetValueEx具体操作可以参考:源码...原创 2021-03-11 11:23:25 · 292 阅读 · 0 评论 -
vs2017 winform 生成exe安装包与常见问题
制作安装包遇到的常见问题:管理员权限问题,wiform编译出来安装包,log4net没有写文件(如果以管理员身份运行,则可以写):1, 项目->Properties->app.manifest中的 <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 修改为 <requeste...原创 2020-03-27 11:38:15 · 4213 阅读 · 0 评论 -
MFC通过自定义宏生成exe文件名+版本号
1,添加自定义宏: 视图->其他窗口->属性管理器->Microsoft.Cpp.W32.user中添加自己定义的宏,如宏名:APP_NAME2,将软件名字设置自定义宏 项目->属性->配置属性->常规->目标文件名输入自己定义的宏:$(APP_NAME) 项目->属性->配置属性->链接器->文...原创 2020-03-04 14:55:18 · 1325 阅读 · 0 评论 -
MFC 获取/遍历 窗口所有子控件
CWnd *pWnd = AfxGetMainWnd(); HWND hwnd = pWnd->GetSafeHwnd(); HWND subWnd = ::GetWindow(hwnd,GW_CHILD); //HWND subWnd = ::GetWindow(this->GetSafeHwnd(),GW_CHILD);//如果是CForm...原创 2019-12-21 17:40:28 · 4108 阅读 · 0 评论 -
MFC获取菜单、修改菜单文字
动态获取、修改菜单标题、获取菜单标题 操作: CMenu *pMenu=AfxGetApp()->m_pMainWnd->GetMenu(); //获取菜单 if (pMenu) { CMenu *subMenu = pMenu->GetSubMenu(0);//获取第1个子菜单(如File菜单) 。GetSubMenu(1):第二个菜单,如:Edit菜...原创 2019-12-21 16:21:11 · 3799 阅读 · 0 评论 -
VS2015创建并使用DLL
1.DLL文件DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被...转载 2019-06-24 08:37:42 · 2408 阅读 · 0 评论 -
C/C++:函数的编译方式与调用约定以及extern “C”的使用
转自:函数在C++编译方式与C编译方式下的主要不同在于:由于C++引入了函数重载(overload),因此编译器对同名函数进行了名称重整(name mangle)。因此,在C++中引用其他C函数库时,需要对声明使用的函数做适当的处理,以告知编译器做出适应的名称处理。函数的调用约定涉及了函数参数的入栈顺序、清栈主体(负责清理栈的主体:函数自身还是调用函数者?)、部分名称重整。如,在C编译方式...转载 2019-07-09 09:40:50 · 571 阅读 · 0 评论 -
VS2015找不到stdio.h或new.h的Bug修复
今天尝试安装了VS2015,发现微软还是没有处理好一台计算机安装多个VS版本时环境配置问题。无论是建立Console控制台程序还是MFC程序,都提示缺少"stdio.h"或"new.h"头文件。VS工程默认的包含路径C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include下的确没有这些头文件,那么应该怎么办呢,难道需要手动从别...转载 2019-07-09 16:24:53 · 3228 阅读 · 0 评论 -
Visual Studio常用快捷键(非常实用)
```项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添加新类 Shift + Alt + A = 添加新项目到项目 编辑相关的键盘快捷键 Ctrl + Enter = 在当前行插入空行 Ctrl + Shift + ...原创 2019-04-26 21:53:24 · 16728 阅读 · 2 评论 -
MFC中向对话框中添加菜单栏方法
在MFC中一般基于对话框的MFC界面是没有菜单栏的,基于文档视图结构的MFC界面是有菜单栏的,那么怎么在基于对话框的MFC界面中添加菜单栏。下面是基于网上的博客啥的自己整理的。**一、在资源视图中将menu加入资源视图中1、在MFC中新建一个基于对话框的MFC界面工程,打开资源视图截图如下:里面是默认没有menu资源的。这时就需要我们手动添加menu资源了。2、在资源视图中添加m...转载 2019-07-10 14:20:17 · 542 阅读 · 0 评论 -
MFC对话框添加工具栏、菜单、状态栏
加工具栏:1.对话框头文件中添加CToolBar m_wndToolBar;12.对话框初始化函数中添加if(!m_wndToolBar.Create(this) || !m_wndToolBar.LoadToolBar(IDR_TOOLBAR1)){TRACE0( "Failed to Create Dialog Toolbar\n ");EndDialog(IDCANCEL)...转载 2019-07-10 14:28:21 · 1175 阅读 · 0 评论 -
MFC动态创建控件及其消息响应函数
原文链接:http://www.cnblogs.com/gaohongchen01/p/4046525.html动态按钮(多个)的创建:1、在类中声明并定义按钮控件的ID#define IDC_D_BTN 100002、在类的OnInitDialog()函数中动态创建按钮(建立按钮对象时最好建立对象的指针)3、手动释放对象指针下面是动态生成多个按钮的例子:CBut...转载 2019-07-12 09:31:09 · 875 阅读 · 1 评论 -
VS2015 、VS2017 MFC输出日志到控制台窗口
在做DLL库的时候经常会通过printf打印一些调试信息,但是MFC项目引用后printf信息是无法输出到调试窗口的,网上一些说通过AllocConsole();打开命令窗口在VS2017中竟然不好用,最终经过网络寻找到可用方法:在vs中打开你的解决方案。鼠标移动到你的项目名称上,点击鼠标右键,再点击属性,此刻会此项目的属性页。在配置属性中,找到生成事件,在找到后期生成事件。在命令行的右...原创 2019-06-22 10:21:53 · 8215 阅读 · 5 评论 -
libusb-win32的移植
引入头文件引入动态库(同时兼容32位与64位)#ifndef _WIN64#pragma comment(lib, "libusb-win32/libusb32.lib")#else#pragma comment(lib, "libusb-win32/libusb64.lib")#endif原创 2019-06-22 07:15:20 · 476 阅读 · 0 评论 -
windows消息机制(MFC)
windows消息机制(MFC)消息分类与消息队列Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型,而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据的含义也不一样。time表示产生消息的时间,pt表示产生消息时鼠标的位置。按照类型,Windows将消息分为:(0) 消息ID范围转载 2017-02-23 23:39:28 · 332 阅读 · 0 评论 -
在 Visual Studio 中使用代码映射可视化和了解代码
官方地址:http://msdn.microsoft.com/zh-cn/library/jj739835.aspx您可以将代码中的关系映射到 Visual Studio 旗舰版。 在您创建编码映射后,它们会显示在代码编辑器旁边。 这使你可以将精力集中在你的任务上,因为你可以在工作时查看你在代码中的位置。代码图表明代码关系,其显示在代码编辑器的旁边。 绿色箭头显示代转载 2017-02-23 23:46:37 · 2288 阅读 · 0 评论 -
VC复选框的使用
VC复选框的使用:IsDlgButtonChecked(IDC_CHECK1)参数为复选框的ID,选中时返回1,未选中返回0使用IsDlgButtonChecked 函数判断单选钮或复选框是否被选中 CWnd::IsDlgButtonChecked函数,用来判断单选按钮或检查框是否被选择,该函数的声明为UINT IsDlgButtonChecked(int nIDButt原创 2017-02-24 23:19:22 · 1126 阅读 · 0 评论 -
使用Visual Studio 2010制作安装包
博主比较傻,以前忙了很久,搜了很久,提问等了很久也没解决安装程序打包问题。我在百度上提了个问题,半个月居然都没有人理,唉!解决的辛酸就不说了,现在解放了。。。我用的是visual studio 2010进行打包,2005、2008都差不多是一样的操作。详图如下。1.打开visual studio 2010,新建一个安装项目,名称为InstallTest,图如下2.在解决方案原创 2017-02-25 10:09:41 · 897 阅读 · 0 评论 -
VS2010如何安装MSComm控件
VS2010在默认情况下是不包含MSComm控件的,MSComm是在VC6.0中的控件,据说MSComm控件有些缺陷,看来微软是打算放弃此控件了。不过对于已经熟悉使用此控件的人来说还是不太方便,我是那种喜欢偷懒的人,所以在网上找了方法将MSComm控件加入到VS2010中,并做下笔记,这就是我写本文章的目的。第一步:下载MSComm控件下载地址:http://download.cs转载 2017-02-26 11:19:42 · 1010 阅读 · 0 评论 -
VS 2010中使用MSCOMM串口控件实现串口通信
注意:Mscomm控件在VC6.0里面生成的类和VS2010里面生成的类不一样。准确的说是封装的操作名字和使用方式有点不一样。以对话框程序为例,下面试着在vs2010下使用该控件(控件在使用之前必须要注册)。第一步: 创建对话框程序,画好编辑框等控件。第二步: 插入MSCOMM控件,添加控件相关的类。并为控件添加好变量。第三步:原创 2017-02-26 11:38:20 · 3851 阅读 · 0 评论 -
VS2010 CString与char互相转换的方法
测试环境:WIN7 64位,VS2010的WIN32控制台下包涵头文件#include #include #include 工程属性设置为: 封装函数:函数功能:将多字节字符转为单字符型参数1:[in][out] pDest 指向目标地址指针,即转换后存放的地址参数2:[in] pSource 引用原CString对象int My原创 2017-02-25 23:32:39 · 7386 阅读 · 0 评论 -
visual studio 2010 MFC 系列教程
http://www.jizhuomi.com/catalog.asp?tags=MFC&page=4原创 2017-02-27 09:57:23 · 5828 阅读 · 0 评论 -
掌握visual studio2010调试技术 -- 入门指南
1 导言在软件开发周期中,测试和修正缺陷(defect,defect与bug的区别:Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的)的时间远多于写代码的时间。通常,debug是指发现缺陷并改正的过程。修正缺陷紧随debug之后,或者说二者是相关的。如果代码中存在缺陷,我们首先要识别造成缺陷的根本原因(root cause),这个过程就称作调试(debugging)。找到根转载 2017-02-27 11:48:49 · 3401 阅读 · 0 评论 -
MFC文章列表
MFC六大关键技术MFC基础变量类型MFC中的CString类使用方法指南CString常用用法MFC ListCtrl的用法ListControl原创 2019-04-26 22:23:54 · 190 阅读 · 0 评论 -
MFC移植libusb
1,添加lib库文件https://blog.csdn.net/phenixyf/article/details/296342852,由于Lib库编译的版本可能跟我们开发用的vs版本不一样,我们需要先要在libusb源码工程编译一个与我们vs一样的lib,然后替换掉原来的lib;libusb源码下载:https://github.com/libusb/libusb具体操作...原创 2019-06-10 22:14:14 · 849 阅读 · 0 评论 -
基于VS2010的MFC动态菜单
1、创建菜单资源新建IDR_DYNAMIC_MENU,制作如下菜单,其中“动态菜单1”,“动态菜单2”的属性popup为false,并设定ID为ID_DYNAMIC_ITEM1和ID_DYNAMIC_ITEM2,中间的分隔符在Caption属性中输入"-",并设置popup为false,separator为true。为系统菜单添加一个类似placeholder的菜单项,其Caption转载 2017-03-02 14:13:47 · 958 阅读 · 0 评论