自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 收藏
  • 关注

转载 MFC获得当前应用程序目录的GetCurrentDirectory()和GetModuleFileName()函数

在 开发过程中经常需要获得程序当前的运行目录,这时就可以使用GetCurrentDirectory()和GetModuleFileName()函 数,GetCurrentDirectory只是返回当前进程的当前目录,而并不是进程的镜像文件(.exe)所在的目 录,GetCurrentDirectory()适用于XP等系统,,在WinCE上不能使用,GetModuleFileName()适用于 Wi...

2019-07-08 20:44:42 303

转载 MFC获得当前应用程序目录的GetCurrentDirectory()和GetModuleFileName()函数

在 开发过程中经常需要获得程序当前的运行目录,这时就可以使用GetCurrentDirectory()和GetModuleFileName()函 数,GetCurrentDirectory只是返回当前进程的当前目录,而并不是进程的镜像文件(.exe)所在的目 录,GetCurrentDirectory()适用于XP等系统,,在WinCE上不能使用,GetModuleFileName()适用于 Wi...

2019-07-08 20:43:41 548

转载 MFC获得当前应用程序目录的GetCurrentDirectory()和GetModuleFileName()函数

在 开发过程中经常需要获得程序当前的运行目录,这时就可以使用GetCurrentDirectory()和GetModuleFileName()函 数,GetCurrentDirectory只是返回当前进程的当前目录,而并不是进程的镜像文件(.exe)所在的目 录,GetCurrentDirectory()适用于XP等系统,,在WinCE上不能使用,GetModuleFileName()适用于 Wi...

2019-07-08 20:40:56 847

原创 MFC自定义消息的实现方法----(线程向主对话框发送消息)

在MFC中,我们一边在使用多线程时,经常会遇到在需要调用到新建的控件,此时建议不要在新建的线程中直接调用主对话框的控件,我们可以通过自定义消息,在新建线程中发送并触发主线程进行相关的界面控件操作。以Dialog对话框程序为例,添加自定义消息的操作方法可以如下所示:1.在头文件stdafx.h中添加一个自定义消息宏:#define WM_USER_MSG_HDL (WM_USER...

2019-06-11 10:42:09 2092

转载 IntelliSense: 无法打开 源 文件 "stdafx.h"

VS2010中包含以前的.h/.cpp文件于现在的工程中,出现IntelliSense: 无法打开 源 文件 "stdafx.h",搜寻到一些方法都不适用,比如:设置项目属性->配置属性->C/C++->预编译头->使用 (/Yu)/创建 (/Yc)/不使用预编译头三种方式都不行。虽然提示这样的错误,但是运行程序是成功的,初始化和编译运行好像使用不同的查找路径,在低版本的V...

2019-05-28 17:04:13 1807 2

转载 Flash数据读取和保存

实现方法Flash数据读取和保存的目的是在单片机的程序存储区开辟一块空间专门用来保存系统需要记忆的参数和数据,从而完全取代EEROM,达到降低成本和数据保密的目的。该实现方法主要分为四个部分: FLASH数据的读取 FLASH数据的设定 FLASH数据的保存 FLASH空间的擦除 其中,数据的读取和保存方法需要根据数据的配置格式来确定,这里我们是这样定义的:数据格式的定...

2019-05-24 15:05:41 10177 2

转载 浅析STM32的hex文件

前段时间需要用到BIN文件 随便把HEX文件也了解了一下 参考查阅了一些网上资料,如有雷同除了巧合还有借鉴参考。。。正题:HEX文件格式如下<0x3a>[数据长度1Byte][数据地址2Byte][数据类型1Byte][数据nByte][校验1Byte]<0x0d><0x0a>分析下面具体例子:020000040800F2: 这个就是<0x...

2019-05-24 14:27:19 3282

转载 STM32开发 -- 烧写/启动模式

如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/80586445根据我一贯的作风,接下来该讲烧写/启动模式,然后再讲各种烧写方法和过程,最后是启动流程。这一篇文章,就看一下 烧写/启动模式。一、启动模式(Boot modes)阅读:STM32中文参考手册_V10.pdf 查看启动配置(Boot modes)。...

2019-05-23 19:38:58 822

转载 I2C通信的实践,学习笔记

本文是我自己实际工作中,对I2C通信协议的学习,实现过程的一个总结。它记录了我从对I2C一无所知到最终能够熟练实现I2C协议的一个过程。希望能够帮到不了解I2C通信协议却正好要使用I2C的一些小伙伴们。叙述的方式还是一点一点来,尽量简单,用到哪儿再详细说哪儿。一提到通信我们自然会想到要有两个设备,在它们之间相互传递数据的过程就叫通信。那么它们怎么传递数据呢?硬件上怎么连接?什么时候开始发送数据...

2019-05-23 18:28:09 1071

转载 设计一款STM32的BootLoader

参考文章:https://blog.csdn.net/qingtian506/article/details/9128899之前很想做一个属于STM32的BootLoader,但是想想没什么实际用处就没有下手,但是当前的项目遇到的麻烦事情要我改变了这种看法。比如说我开发了一个产品需要测试,把一个样品送到客户手里去测试使用,但是客户在使用的过程中提出了一些修改建议,那我就在做一个样品改好程序之后...

2019-05-23 17:52:25 1115

原创 vs环境下 release版本调试设置

设置在Release模式下调试的方法:1.工程项目上右键 -> 属性2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)3.c++ -> 优化 -〉优化 选 禁止(/Od)4.连接器 -〉调试 -〉生成调试信息 选 是 (/DEBUG)...

2019-05-22 12:59:43 1033

转载 项目发布Debug和Release版的区别

一、Debug和Release的区别  Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息  Release:发布版本,不对源代码进行调试,编译时对应用程序的速度...

2019-05-22 12:51:21 1370

转载 main函数命令行参数的使用

总览一个程序的main()函数的可以包括两个参数第一个参数的类型为int型; 第二个参数为字符串数组。通常情况下,将第一个参数命名为argc,第二个参数为argv(当然参数名字可以换)。由于字符串数组有两种表达方式,因此,main函数存在两种书写方法:形式一: int main(int argc, char* argv[])//这里使用char* argv[]{ re...

2019-05-16 17:32:33 4558 1

原创 IP地址转换函数:inet_pton

inet_pton是一个IP地址转换函数,可以在将IP地址在“点分十进制”和“二进制整数”之间转换而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。头文件:windows下:#include <WS2tcpip.h>linux下:#include <sys/socket.h>#include &lt...

2019-05-16 15:10:17 12708

原创 如何解决VC编译inet_addr出现error C4996的问题

在编译过程中出现如图所示error C4996的错误,此问题在vc2013及以上版本都会出现,主要是编译器进行了安全检查,部分旧的函数限制使用。解决此问题有两种方法。方法/步骤 第一种方法是去掉SDL检查。设置项目属性,将c/c++->SDL检查设置为“否”即可跳过检查,使用旧的函数可编译成功。 std::string addr; ........ serv_add...

2019-05-16 14:48:33 822

转载 关于VS2013下制作和使用静态库和动态库

关于VS2013下制作和使用静态库和动态库引言什么是库:库是写好的现有的,成熟的,可以复用的代码。 所谓静态、动态是指链接。将一个程序编译成可执行程序的步骤:静态库在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。为什么还需要动态库?空间浪费是静态库的一个问题。 另一个问题是静态库对程序的更新、部署带来麻烦。如果...

2019-05-16 12:28:49 183

原创 MFC中char*,string和CString之间的转换

string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的;char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的。所以熟练掌握三者之间的转换十分必要。以下我用简单的图示指出三者之间的关系,并以标号对应转换的方法。1 string 转为 CStringCString.format("%s",string.c_str...

2019-05-16 11:27:30 17802 2

转载 在VS中添加lib库的三种方法

注意:1、每种方法也要复制相应的DLL文件到相应目录,或者设定DLL目录的位置,具体方法为:"Properties"->"ConfigurationProperties"->"Debugging",在"WorkingDirectory"设置dll的路径就可以了2、无论是设置DLL目录,或者是Lib目录,亦或是头文件的目录,都有release版本和debug版本的区分...

2019-05-15 17:43:42 1027

原创 MFC 获取当前程序运行目录

//--------------方式1CString SetSoftDlg::GetCurrentPath(){    char lpExePathName[255];    char lpExePath[255];    char lpExeName[255];    char ExeDrive[10];    char exeExt[10];    GetModuleFile...

2019-02-11 21:34:00 457

转载 两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set("utf-8")两种方法)

升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题第一种:在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式,然后在代码中,遇到中文字符,使用QStringLiteral("中文")进行修饰这种方式每次新建一个class就要切出去用记事本编辑一下实在麻烦,而且每个中文字符串都要用QStringLit...

2019-01-13 08:30:47 7305 3

原创 MFC:快速设置控件文本字体、大小、颜色、背景

以静态文本为例,分享一下怎么修改文本字体、大小、颜色、背景等参数。其他文本、控件等可参照修改。1.修改字体、大小这个很简单,首先在Dlg类中声明一个CFont类型的成员变量: 然后在类的初始化函数OnInitDialog()中添加以下两行代码: //设置静态文本字体大小 m_editFont.CreatePointFont(180, _T("宋体"));...

2019-01-12 23:03:43 20866

转载 QT : 2013VS环境下配置QT5

如何在VS2013下创建Qt5工程,必须在创建工程前将Qt5插件配置到VS2013中,本文介绍如何添加Qt5插件,以及使用插件创建Qt新项目中的路径问题。前提:1.下载安装VS2013;2.下载安装Qt5(下载地址:64位[Qt5.6.0]、32位[Qt5.6.2]);3.下载安装连接Qt和VS的一个插件qt-vs-addin(下载地址:64位32位通用)安装qt-vs-add...

2019-01-12 12:06:57 949

转载 fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h

错误描述:fatal error C1010:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include"stdafx.h"”?错误分析:    此错误发生的原因是编译器在寻找预编译指示头文件(默认#include"stdafx.h")时,文件未预期结束。没有找到预编译指示信息的头文件"stdafx.h"。   (因为工程中的每个cpp文件属性默认都是使用预编译头(/Y...

2019-01-12 10:09:02 6644 1

原创 VS2013 QT插件及Qt-vs-addin卸载

VS2013 QT插件卸载:打开VS2013选择 工具 --》扩展和更新在弹出的对话框 选择需要卸载的插件而后点击 重新启动重启后的VS2013Qt-vs-addin卸载: Qt-vs-addin是一款QT插件 ,主要在windows与vs集成开发环境配合用于软件开发。用户可以参考如下卸载方法:1、可以通过控制面板进行卸载, 同时按WIN+R键,打...

2019-01-12 09:21:59 9304

转载 Qt之串口编程(添加QSerialPort模块)

Qt之串口编程(添加QSerialPort模块)2018年05月21日 10:36:31 小师兄. 阅读数:2213Qt中添加了QSerialPort类,非常好用,可是由于各种原因,很多人还是要用Qt4,比如我,后来发现官方文档说QSerialPort支持Qt4,就研究了一下,比较笨,搞了好久才弄好。第一步:下载QSerialPort模块官方网站我经常打不开,所以上传到网盘了。...

2019-01-06 14:56:38 4412 1

转载 PeekMessage完美解决MFC主界面无响应

一般主界面无响应的解决方案是,对于计算量过大的方法,另开工作者线程,如下:     MFC支持两种线程:用户界面线程和工作者线程。(1)用户界面线程:通常用于处理用户输入,响应由用户产生的事件和消息。用户界面线程通常有窗口,有自己的消息循环。CWinApp是一个用户界面线程对象的例子,因为它是从CWinThread派生出来的,而且要处理用户产生的事件和消息。(2)工作者线程:通常用于处...

2019-01-01 23:41:46 3913 1

转载 MFC: DoEvent

c中DoEvent函数一般写成:MSG msg;while(PeekMessage(&amp;msg,NULL,0,0,PM_REMOVE)) //非阻塞查看消息队列是否有消息过来,有消息返回非零进入循环//无消息返回0则跳出{TranslateMessage(&amp;msg) ; //有消息时,虚拟键消息转换为字符消息DispatchMessage(&amp;msg);//发送...

2019-01-01 23:22:41 1397

转载 MFC : while (PeekMessage(&msg,NULL,0,0,PM_REMOVE))

项目中用到了好多这个消息循环,很是困惑。遂百度之,难道一个窗口下可以有多个消息循环吗?百度结果都是介绍和GetMessage区别的,正经的说这个有啥作用的,少之又少。不过有一篇英文的不错,这是出处,可以参考一下http://blog.csdn.net/scofieldlau/article/details/1965517#t0奈何我的疑惑仍然为解。最后查看MSDN,清晰一二原文Un...

2019-01-01 22:33:51 2084

转载 UTF-8编码规则(转)

UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出unicode是给出一个字符的范围,定义了这个字是码值是多少,至于具体的实现方式可以有多种多样来实现。 UTF-8是一种变长字节编码方式。对于某一个字符的UTF-8编码,如果只有一个字...

2018-12-25 16:36:29 480

转载 SVN使用教程总结

SVN简介:为什么要使用SVN?   程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。Subversion是什么?  它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以...

2018-12-25 15:04:46 683

转载 ansi编码

不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、Big5、Shift_JIS 等各自的编码标准。这些使用 1 至 4 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际...

2018-12-19 09:12:48 1083

转载 locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别

locale命令locale这个单词中文翻译成地区或者地域,其实这个单词包含的意义要宽泛很多。Locale是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的一个软件运行时的语言环境。[oracle@game ~]$ localeLANG=en_US.UTF-8LC_CTYPE="en_US.UTF-8"LC_NUMERIC="en_US.UTF-8"LC_TI...

2018-12-18 23:30:31 4573

转载 C#: byte[] 转换16进制字符串

1.byte[] 转换16进制字符串   1.1 BitConverter方式var str = DateTime.Now.ToString();var encode = Encoding.UTF8;var bytes = encode.GetBytes(str);var hex = BitConverter.ToString(bytes, 0).Replace("-", string.Em...

2018-06-26 20:01:52 3600

转载 C#: 字符串string和字节数组byte[]的转换

string转byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );byte[]转string:string str = System.Text.Encoding.Default.GetString ( byteArray );string转ASCII byte[]:byte[] byteArray = Sy...

2018-06-26 19:06:17 1196

原创 C#: WinForm系列——DataGridView单元格文本自动换行

DataGridView是.NET开发中常用的控件,在开发中发现大文本数据显示时无法在界面上完全显示,以下是我的解决方法。(1)首先要保证单元格的为Text类型(2)在程序中加入以下的代码片段String str1 = "mac:192.168.0.121";String str2 = System.Environment.NewLine;String str3 = "rssi:(-59)";...

2018-06-26 15:12:42 9213 1

原创 C#: "$"作用和用法

C#中$的用法:"$"是在C#6.0出现的一个新特性,其作用相当于对String.format()的简化。string.format()需要自己在字符串中写占位符,在后面跟上参数。如果要格式化的参数比较多,写起来就比较恶心。 而用$符号,写法就简洁多了,我们可以直接在字符串的相应位置协商自己想要替换的参数就好了。class Program { static void Mai...

2018-05-18 12:00:20 8128 3

转载 c#:“@”的作用和用法

“@”在看别人程序的时候偶尔看到,总结了一下两个用途1. 不常用,也不推介用的用法。 @关键字 可以作为标识符来使用,说白了,就是讲关键字变成非关键字。2.逐字字符串字面量,以@开头,后面是由引导包含的字符串。使用引导号包含的字符串的内容原样输出,而且他们能够跨越两行或更多行。因此,可以加入新行,制表符等,而不需要使用转义序列。唯一例外的情况是,为了显示双引号("),必须在同一行中使用两个双引号(...

2018-05-18 10:26:19 638

转载 C#: 浅拷贝与深拷贝区别

也许会有人这样解释C# 中浅拷贝与深拷贝区别:浅拷贝是对引用类型拷贝地址,对值类型直接进行拷贝。不能说它完全错误,但至少还不够严谨。比如:string 类型咋说?其实,我们可以通过实践来寻找答案。首先,定义以下类型:int 、string 、enum 、struct 、class 、int[] 、string[]代码如下:public enum my

2018-04-28 16:02:21 1201 1

转载 c# List<T>与ObservableCollection<T>

在WPF , silverlight ,WP7中经常会用到List和ObservableCollection。这里简单讲一下他们之间的相互转换。1.List的简单介绍:List代表的是强类型的Ojbect集合,可以通过索引访问并且提供了查找、排序以及操作此集合的方法。List基本上和ArrayList相同,它用数组的方式实现了接口IList并且他的大小可以根据需要来自动增加

2018-04-28 10:50:19 6616 1

转载 C#: 关于Clone()方法的介绍

谈谈浅复制与深复制的问题:例如我有一个简单的类:class People{ public int _age; public string _name; public People(int Age,string Name) {    _age = Age;    _name = Name; }}常见的赋值语句,如:People Mi

2018-04-24 19:14:36 3007

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除