
c++
文章平均质量分 59
初阳-.-#
人生,不该有遗憾!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ListView 和C++ QAbstractListModel 自定义model 记录
test.qmlimport QtQuick 2.0import mylist 1.0ListView { width: 180; height: 200 model: PeopleListModel { id: model1 } delegate: Text { text: name + ": " + number } MouseArea { anchors.fill: parent .原创 2020-07-07 13:54:46 · 1317 阅读 · 1 评论 -
[转] C++ 宽字符操作函数
字符分类:宽字符函数 普通C 函数描述iswalnum() isalnum()测试字符是否为数字或字母iswalpha() isalpha()测试字符是否是字母iswcntrl() iscntrl()测试字符是否是控制符iswdigit()...转载 2020-01-07 15:30:11 · 684 阅读 · 0 评论 -
[Windows API] GetFileSizeEx 和 GetCompressedFileSize
获得文件大小的函数GetFileSizeEx() 和 GetCompressedFileSize()文件的逻辑大小和物理大小:假设一个100KB的文件经过压缩后只占用85KB,调用GetFileSizeEx返回的是文件的逻辑大小(100KB),而调用GetCompressedFileSize返回的是文件的物理大小(85KB)。GetFileSizeEx() 获取文件逻辑大小函...转载 2020-01-07 15:24:52 · 644 阅读 · 0 评论 -
EBP基址指针寄存器
EBP基址指针寄存器,存放堆栈基址,由于ESP指针是会随时发生改变的,所以,出于程序分析上的考虑,使用EBP寄存器来对堆栈进行访问,但对于编译器来说,EBP担任了对堆栈基址访问的大任,所以,每个函数在开始时都要保存原来的EBP,设置自己的堆栈地址(mov ebp,esp),在函数结束返回时恢复原来的EBP,使上级函数可以正常使用EBP。---------------------原文:http...转载 2019-05-17 11:07:52 · 1059 阅读 · 0 评论 -
WSAGetLastError()错误返回值
10004 0x2714 一个封锁操作被对 WSACancelBlockingCall 的调用中断。10009 0x2719 提供的文件句柄无效。10013 0x271D 以一种访问权限不允许的方式做了一个访问套接字的尝试。10014 0x271E 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。10022 0x2726 提供了一个无效的参数。10024 0x2728 打开的套接...转载 2019-03-01 14:10:32 · 2939 阅读 · 0 评论 -
[c++] std::pair的用法
1 pair的应用pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。2 make_pair函数...转载 2019-01-15 16:04:25 · 410 阅读 · 0 评论 -
mfc 打开打印窗口
void openTheConsole() //打印窗口{ AllocConsole(); FILE *stream; freopen_s(&stream, "CONOUT$", "w+t", stdout); freopen_s(&stream, "CONIN$", "r+t", stdin);}析构时使用FreeConsol...原创 2019-01-14 16:21:49 · 657 阅读 · 0 评论 -
[c++] 获取物理内存和可用虚拟内存、内存使用率、cpu使用率
获取内存MEMORYSTATUSEX 函数原型:typedef struct _MEMORYSTATUSEX { DWORD dwLength; DWORD dwMemoryLoad; DWORDLONG ullTotalPhys; DWORDLONG ullAvailPhys; DWORDLONG ullTotalPageFile; DW...原创 2019-01-14 14:17:35 · 3964 阅读 · 1 评论 -
[c++11] goto利弊
一看就知道是goto和call分不清的孩子然后在群里敲代码的时候,小猫用了Do...Loop循环,结果群里有个小朋友问Do...Loop循环是什么?-_-|||结果一群人都说很少用Do...Loop循环,大部分都喜欢用Goto,我才发现这个问题,并不是说不能用Goto,而是少用Goto!!!废话讲完了,开始正题先为新手解释下Goto和Call的区别Goto是用来跳转代码的,即当代码...转载 2019-01-07 16:50:17 · 1817 阅读 · 0 评论 -
[c++] memset函数
memset函数是计算机中C/C++语言初始化函数,将s所指向的某一块内存中的后n个字节的内容全部设置为ch指定的ASCII值,第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作,返回值为s。需要的头文件:在C中<string.h> 、在C++中<cstring>void *memset(void *s, int ch, si...转载 2019-01-07 14:30:18 · 205 阅读 · 0 评论 -
[c++] static关键字作用总结
**在一个循环或者是定时器中,static定义变量并赋值,那么只有在进入循环或者定时器的首次操作才会执行直到退出循环或者杀死定时器,然后再次进入或开启定时器才会重新赋值1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是...原创 2019-01-07 11:43:16 · 276 阅读 · 0 评论 -
[c++] i++ 和 ++i 的区别
(1)i ++:int i = 0;while (i < 10) { i ++;}(2)++i:int i = 0;while (i < 10) { ++ i;}(1)与(2),经过运算后,i的值都是10。在while和for循环中的 ++i 和 i++ 是没有区别的。现在我们来看一段程序#include <stu...原创 2019-01-17 14:34:07 · 496 阅读 · 0 评论 -
内存泄露和内存溢出的区别 (概念区别 产生原因区别 及解决办法)
内存泄露和内存溢出的区别概念区别内存溢出 : out of memory 指程序在申请内存时,没有足够的内存空间供其使用,出现out fo memory 比如申请一个integer 但给它存了long才能存下的数那就是内存溢出内存泄露 : 内存泄漏是指程序中已动态分配的堆内存由于某种原因未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统奔溃等严重后果即为:不再...原创 2019-01-17 10:05:39 · 1464 阅读 · 2 评论 -
[c++] 获取磁盘信息(磁盘驱号和内存使用情况)
VS2017 使用Unicode 字符集写的一个例子---获取磁盘标号,大小,使用情况。GetDriveType头文件在“winbase.h"判断一个磁盘驱动器的类型,返回值long,如果不能识别,则返回0.若是指定目录不存在,则返回1,如执行成功,则用下述任何一个常数指定驱动器类型:DRIVE_REMOVABLE, DRIVE_FIXED, DRIVE_REMOTE, DRIVE_...原创 2019-01-10 16:32:53 · 2598 阅读 · 0 评论 -
[c++] string不能直接用cout输出
#include <iostream>using namespace std;int main(){ string str_test = "helloworld"; cout << str_test.c_str() << endl; return 0;} 运行结果:原创 2019-01-10 16:20:10 · 543 阅读 · 0 评论 -
[c++] LPWSTR、LPCSTR、LPCWSTR浅析
LPCSTR是Win32和VC++所使用的一种字符串数据类型。LPCSTR被定义成是一个指向以'\0'结尾的常量字符的指针。LPWSTR是wchar_t字符串LPCWSTR是一个指向unicode编码字符串的32位指针,所指向字符串是wchar型,而不是char型。LPSTR和LPWSTR是Win32和VC++所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘\0...原创 2019-01-10 15:41:40 · 44266 阅读 · 2 评论 -
[c++] Windows下dump文件生成与分析
一、 生成Dump文件方式1.1任务管理器在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程。右键—>创建转储文件。 此时会在默认的目录下创建出一个dump文件。 可以看出,此种方法只适用于程序崩溃但没有立即自行退出的情况。倘若程序故障后自行退出,则此方法就难以应用。不过,我们可以在注册表中添加如下信息已确保系统在程序崩溃后自行保存一个dum...转载 2019-01-07 14:56:37 · 898 阅读 · 0 评论 -
[c++] try catch throw 异常处理
程序运行时常会碰到一些异常情况,例如:做除法的时候除数为 0; 用户输入年龄时输入了一个负数; 用 new 运算符动态分配空间时,空间不够导致无法分配; 访问数组元素时,下标越界;打开文件读取时,文件不存在。这些异常情况,如果不能发现并加以处理,很可能会导致程序崩溃。所谓“处理”,可以是给出错误提示信息,然后让程序沿一条不会出错的路径继续执行;也可能是不得不结束程序,但在结束前做一...转载 2019-01-10 14:07:34 · 659 阅读 · 0 评论 -
[c++] delete 和 delete []的区别
1.我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存那么,按照教科书的理解,我们看下下面的代码:int *a = new int[10];delete a; //方式1delete [] a; //方式2肯定会有很多人说方式1肯定存在内存泄漏,是这样吗?(1). 针对...转载 2019-01-10 14:03:02 · 136 阅读 · 0 评论