![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习与知识
千么漾漾
这个作者很懒,什么都没留下…
展开
-
NTFS
常见的操作系统使用的文件系统整理 文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并...原创 2018-04-02 15:06:28 · 1337 阅读 · 0 评论 -
shell扩展
第七城市编程开发平面设计数据库设计赏析关注第七城市Email:service@7-inc.com编程PHPJavaPython.NETRubyIOS安卓设计3DS MAXIllustratorPhotoshopCoreldrawCAD赏析插画平面网页建筑摄影三维UIWordExcelPPTWinLinuxOS XMySQLOracleHTMLJS七城微课老版入口您的位置:首页 - 操作系统 - W...转载 2018-04-11 11:47:31 · 2126 阅读 · 0 评论 -
让程序在崩溃时体面的退出之SEH
让程序在崩溃时体面的退出之SEH SEH的全称是Structured Exception Handling,是Windows操作系统提供的一种异常处理方式。SEH是属于操作系统的特性,不为特定语言设计,从它的名字就能看出它是一种结构化的异常处理方式。SEH包括了2个部分:终止处理__try/__finally和异常处理__try/__except,下面分别进行介绍。 终止处理__tr...转载 2018-05-10 18:07:15 · 191 阅读 · 0 评论 -
DLL中传递STL参数
DLL中传递STL参数摘要: 以下是自己在调测代码过程出现问题后,搜索出来的资料,虽然很乱,但明白了在跨DLL传递stl中的容器类对象时存在问题的原因及解决办法,故保存之。 STL跨平台调用会出现很多异常,你可以试试. STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下面是详细解释。以下是自己在...转载 2018-05-11 10:15:06 · 499 阅读 · 0 评论 -
不要在公共接口中传递STL容器
不要在公共接口中传递STL容器最近的一个项目,是开发一个framework,提供给公司内部不同的产品线使用。 之间遇到的一个问题,就是STL容器的使用, 而结论是不要在公共接口中传递STL容器:这里说的STL容器,但主要则是指容器,字符串类,但其实可以推广到在STL中提供的任何类型,这里说的公共接口,是指需要暴露给客户的sdk头文件,包括函数签名,或者类成员变量;也可以说,不要在暴露给客户的头文件...转载 2018-05-11 11:18:16 · 184 阅读 · 0 评论 -
CString的工作原理介绍- -
CString的工作原理介绍- - 看了很多人写的程序,包括我自己写的一些代码,发现很大的一部分bug是关于MFC类中的CString的错误用法的.出现这种错误的原因主要是对CString的实现机制不是太了解。 CString是对于原来标准c中字符串类型的一种的包装。因为,通过很长时间的编程,我们发现,很多程序的bug...转载 2018-05-11 12:10:14 · 226 阅读 · 0 评论 -
MultiByteToWideChar和WideCharToMultiByte用法详解
Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件;Unicode字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的\0结尾,NT操作系统内核用的是这种字符串,常被定义为typedef unsigned short wchar_t;所以我们有时常会见到什么char*无法转换为unsignedshort*之类的错误,其实就是unicode;UTF8...翻译 2018-06-04 18:53:39 · 317 阅读 · 0 评论 -
Visual Studio中的文件类型(sln vcproj suo user ncb)
Visual Studio的一个解决方案包括.sln .suo .vcproj .ncb .user等文件类型。.sln(Visual Studio.Solution): 它通过为环境提供对项目、项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中。 包含了较为通用的信息,包括解决方案所包含项...转载 2018-05-29 14:58:34 · 337 阅读 · 0 评论 -
GBK,BIG5,UCS等字符集编码范围的具体说明
国际标准 ISO 10646 定义了通用字符集 [1] (Universal Character Set,UCS), UCS 是所有其他字符集标准的一个超集。它保证与其他字符集是双向兼容的,就是说,如果你将任何文本字符串翻译到 UCS格式,然后再翻译回原编码,你不会丢失任何信息。一. GBK,BIG5等字符集编码范围的具体说明1. 常用概念字符集:字符集是字符的集合。例如,汉字字符是中国人最先发...转载 2018-06-06 15:36:00 · 1802 阅读 · 0 评论 -
setlocale()
C 库函数 - setlocale() C 标准库 - <locale.h>描述C 库函数 char *setlocale(int category, const char *locale) 设置或读取地域化信息。声明下面是 setlocale() 函数的声明。char *setlocale(int category, const char *locale)参数category -- ...转载 2018-06-06 16:31:39 · 1558 阅读 · 1 评论 -
MFC创建模态对话框和非模态对话框的方法
在MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box)。本文对此分别简述其创建方法。一、模态对话框(model dialog box)在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。点击模态对话框中的OK按钮,模态对话框会被销毁。创建一个模态对话框的代码如下所示:...转载 2018-06-01 15:41:54 · 8493 阅读 · 0 评论 -
MFC对话框自定义消息映射的方法
MFC对话框自定义消息映射的方法本文实例讲述了MFC对话框自定义消息映射的方法。分享给大家供大家参考。具体实现方法如下:1、定义消息:复制代码代码如下:#define WM_MYMSG (WM_USER+100)2、定义消息响应函数:LPESULT CSLYARDlg::OnMymsg(WPARAM wParam, LPARAM lParam){// TODOreturn 0;}3、在...转载 2018-06-01 15:57:43 · 1682 阅读 · 0 评论 -
MFC中对话框的各种消息触发时间
MFC中对话框的各种消息触发时间小结:WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕.可以安全的使用这个窗口了,例如在它上面画控件等等.这个状态肯定是在调用ShowWindows()显示窗口之前.WM_WM_INITDIALOG是对话框才能收到的消息,表明对话框及其所有子控件都创建完毕了,这个状态肯定是调用显示对话框的函数之前.所以可以在WM_WM_INITDIALOG对控件进...转载 2018-06-01 17:10:12 · 1290 阅读 · 0 评论 -
为什么要限制栈的大小?
栈大小不够用不是容易出现溢出吗?是为了阻止不靠谱的程序员进入这个行业。 当然,真正的原因其实是栈的地址空间必须连续,如果任其任意成长,会给内存管理带来困难。对于多线程程序来说,每个线程都必须分配一个栈,因此没办法让默认值太大。 当然可能有人会说64位系统上这个不是问题,但大家反正已经用了32位系统这么多年(只有4GB甚至2GB地址空间是可以给用户用的),已经习惯了,而且现代化的内存分配器通过类似s...转载 2018-06-01 17:31:55 · 5317 阅读 · 1 评论 -
windows消息机制(MFC)
消息分类与消息队列Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型,而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据的含义也不一样。time表示产生消息的时间,pt表示产生消息时鼠标的位置。按照类型,Windows将消息分为:(0) 消息ID范围系统定义消息ID范围:[0x0000, 0x03ff] 例:WM_...转载 2018-06-01 18:00:17 · 169 阅读 · 0 评论 -
VC6.0打开或者添加工程文件崩溃的解决方法
下载LOFTER我的照片书 | 很多学习编程的同学都遇到这样的问题,在Windows操作系统下使用Visual C++ 6.0编程时,如果点击菜单中的【打开】或者【添加】,或者按快捷键,都会弹出下图的对话框,出现程序崩溃并退出的情况。 出现这种问题的原因是VC6.0和其他软件冲突所致,网上一般认为是和Office2007或者Office2010冲突,有人说是...转载 2018-06-28 10:24:54 · 930 阅读 · 0 评论 -
硬盘数据恢复原理与方法(转)
硬盘数据恢复原理与方法 我们大家可能都遇到过这样的事情,上午刚刚清空垃圾站,下午却突然想起其中有个文件特别重要,这可怎么办?还有可能系统被病毒破坏,硬盘的分区表或文件分配表被病毒改写,但是硬盘上存着你数年的心血。这时我们就需要对数据进行恢复,而国内也有不少专门从事数据恢复业务的专业公司。不过我们的硬盘发生文件被误删除,分区丢失,病毒破坏等情况,通过一些数据恢复软件自己就能够解决。下面就详细介绍一...转载 2018-07-11 10:21:46 · 8850 阅读 · 1 评论 -
一步一步实现C++操作SQLite数据库
SQLite,是一款轻型的数据库,是遵守ACID的关联式关系数据库,目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同样的代码可以实现跨平台编译,这个数据库和微软的Access很象,都是小型的数据库管理系统,最大的差别为sqlite不需要office的支持,可以完全开源,是真正...转载 2018-07-17 17:42:53 · 2416 阅读 · 0 评论 -
SQLite学习手册(目录)
原文地址:http://www.cnblogs.com/stephen-liu74/archive/2012/03/09/2328757.htmlSQLite学习手册(目录) 在实际的应用中,SQLite作为目前最为流行的开源嵌入式关系型数据库,在系统的架构设计中正在扮演着越来越为重要的角色。和很多其它嵌入式NoSQL数据库不同的是,SQLite支持很多关系型数据库的基本特征,这...转载 2018-07-17 18:00:12 · 115 阅读 · 0 评论 -
SQL多表连接查询
SQL多表连接查询本文主要列举两张和三张表来讲述多表连接查询。 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表,实际开发中这两个表会有自己不同的主键。) 一、外连接 外连接可分为本文主要列举两张和三张表来讲述多表连接查询。新建两张表:表1:student 截图如下:表2:cou...翻译 2018-07-18 10:11:36 · 106 阅读 · 0 评论 -
如何实现热更新
热更新的优点热更新是一个绝对很酷的功能.简单来说,它的好处有两点:一个是提高开发效率,一个是在线上修复问题.可能有些同学不太理解,毕竟大家的技术背景不太一样,所以这里还是展开来讨论一下.先说开发效率.我以前曾经做过一段游戏服务器的开发,与web服务器不太一样的是,游戏服务器通常需要在启动的时候加载很多数据进来.如果你使用的是编译型语言做游戏服务器的开发,那么假如进行了一些修改,除去编码-编译的过程...转载 2018-07-12 18:01:45 · 9207 阅读 · 1 评论 -
中间件
个人理解:将具体业务和底层逻辑解耦的组件。大致的效果是:需要利用服务的人(前端写业务的),不需要知道底层逻辑(提供服务的)的具体实现,只要拿着中间件结果来用就好了。举个例子:我开了一家炸鸡店(业务端),然而周边有太多屠鸡场(底层),为了成本我肯定想一个个比价,再综合质量挑选一家屠鸡场合作(适配不同底层逻辑)。由于市场变化,合作一段时间后,或许性价比最高的屠鸡场就不是我最开始选的了,我...原创 2018-07-26 13:52:45 · 90 阅读 · 0 评论 -
错误C2061:语法错误:标识符'CString'
错误C2061:语法错误:标识符'CString'和错误C2065:'CString':未声明的标识符 答案:由于您正在开发Win32控制台应用程序,因此您无法获得为不同项目类型添加的样板代码。请在预编译的头文件后面的代码中包含<atlstr.h>。嗨,你能不能请问,我有哪些头文件可以包含在VC ++ 6.0中使用CString?Win32 DLL。我在网上...原创 2018-07-26 16:49:14 · 13294 阅读 · 1 评论 -
win32控制台、win32工程、MFC工程的区别
空项目 控制台 win 32 mfc 问2个问题即可。1.控制台 VS win32 mfc?嗯,有不有脸?有脸,选win32或mfc。没有脸,选控制台。(脸就是窗口,就是window......s)(这个有脸)(这个没脸)控制台与win32 mfc:交互方式的不同,前者是CML(命令模式),后者是GUI(用户界面)。...原创 2018-07-26 17:28:51 · 3485 阅读 · 4 评论 -
LPCTSTR
LPCTSTR用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。LPCTSTR类型:L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32位操作系统中, long指针和near指针及far修饰符都是为了兼容的作用...转载 2018-07-26 17:53:20 · 1723 阅读 · 0 评论 -
非 MFC 工程中使用 MFC 库
非 MFC 工程中使用 MFC 库需求说明C++ 工程的类型有很多,从 VS (或 VC) 可以看到常见的有: Win32 Console Application、MFC Application、Win32 Project 等。在创建 MFC 工程时,通过 IDE 的向导会自动帮我们创建相应的类文件和包含必需的头文件,但有时候我们需要在非 MFC 工程中包含 MFC 的库。至于为什么会有这...转载 2018-07-27 09:51:34 · 828 阅读 · 0 评论 -
SQLite
SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成。Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。 SQLite侧重磁盘IO最大化MySQL侧重网络IO最大化SQLite 数据库优缺点都很明...转载 2018-07-27 10:01:41 · 735 阅读 · 0 评论 -
c++能否把所有要用的头文件在某一个头文件中全inlcude了,然后其他文件只用include这个?
用的是xcode,在用cocos2dx做个游戏,因为有很多类,写了很多个cpp,每个cpp都对应一个.h文件,感觉每次包含都很累,便想到把所有头文件都include在一个特殊的头文件中,以后新建的文件都只用往这个特殊的头文件里添加 然后只用包含这一个头文件就行了 但是这么做后就有好多奇怪的问题,像什么重复定义,还有invaild preprocessing directive 因为.h是xcode...原创 2018-07-27 15:28:59 · 4776 阅读 · 0 评论 -
pragma once、include防范、包括警卫优化
这个页面来自对comp.lang.c ++的讨论。关于在C或C ++程序中#including头文件的最有效方式。通常,每个头文件只应为#included一次。在一个中等大小的项目中,头文件#include其他头文件,如果没有某种形式的自动化帮助,很难保持这个规则。一个常见的习惯用法是在包含的头文件的内容周围放置“包含警卫”。例如档案“myheader.hpp”#ifndef MYHEAD...转载 2018-07-31 14:06:19 · 433 阅读 · 1 评论 -
_T() 和_L() _TEXT __T,L区别与联系详解
_T("")是一个宏,他的作用是让你的程序支持Unicode编码 因为Windows使用两种字符集ANSI和UNICODE, 前者就是通常使用的单字节方式, 但这种方式处理象中文这样的双字节字符不方便, 容易出现半个汉字的情况。 而后者是双字节方式,方便处理双字节字符。 Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。如果你编...转载 2018-07-31 14:33:33 · 909 阅读 · 1 评论 -
#pragma once与 #ifndef的区别
为了避免同一个文件被include多次1 #ifndef方式2 #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 一些声明语句 #endif 方...转载 2018-07-31 14:38:57 · 115 阅读 · 0 评论 -
TCHAR vs _TCHAR
TCHAR和_TCHAR是相同的,但由于TCHAR没有前导下划线,因此微软不允许将其保留为关键字(想象一下如果你有一个名为TCHAR的变量。想想会发生什么)。因此,当禁用语言扩展(/ Za)时,TCHAR将不会被#defined。TCHAR在winnt.h中定义(当你#include <windows.h>时你会得到),以及/ Ze下的tchar.h。_TCHAR仅在tchar....原创 2018-07-31 14:50:13 · 2389 阅读 · 0 评论 -
MFC工程转Win32总结
https://wenku.baidu.com/view/9180d29ff18583d048645940.html转载 2018-07-31 17:25:52 · 571 阅读 · 0 评论 -
C运行时库
Visual Studio文档的新主页是docs.microsoft.com上的Visual Studio 2017文档。可以在CRT Library Features中找到该主题的最新版本。本主题讨论构成C运行时库的各种.lib文件及其关联的编译器选项和预处理程序指令。 C运行时库(CRT)C运行时库(CRT)是包含ISO C99标准库的C ++标准库的一部分。实现...转载 2018-07-31 20:02:00 · 1113 阅读 · 0 评论 -
extern 与头文件(*.h)的区别和联系
用 #include 可以包含其他头文件中变量、函数的声明,为什么还要 extern 关键字?如果我想引用一个全局变量或函数a,我只要直接在源文件中包含 #include<xxx.h> (xxx.h包含了a的声明)不就可以了么,为什么还要用 extern 呢?这个问题一直也是似是而非的困扰着我许久,经过实践和查找资料,有如下总结:一、头文件首先说下头文件,其实头文...转载 2018-07-31 20:25:24 · 892 阅读 · 0 评论 -
C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?
这个问题让我想起我在实习的时候犯的一个错误,就是把模版类的定义和实现分开写了,结果编译出错,查了两天才查出问题。C++中每一个对象所占用的空间大小,是在编译的时候就确定的,在模板类没有真正的被使用之前,编译器是无法知道,模板类中使用模板类型的对象的所占用的空间的大小的。只有模板被真正使用的时候,编译器才知道,模板套用的是什么类型,应该分配多少空间。这也就是模板类为什么只是称之为模板,而不是泛型...转载 2018-08-01 15:57:26 · 649 阅读 · 0 评论 -
UONGLONG与CString, double之间的转换
1、ULONGLONG转CStringCString.Format(_T("%I64d"), <your int64 number>);另外,C函数库里有_ui64toa和_ui64tow函数可以把int64转换成C字符串,到C字符串了,你就可以直接赋值给CString了2、CString转ULONGLONG__int64 iadf;_stscanf(my...转载 2018-08-01 18:25:29 · 555 阅读 · 0 评论 -
栈大小
linux系统下默认栈大小是10M,windows系统下默认栈大小是1M.windows下用vs2010编译C++程序时,编译属性中可以重新设定栈大小.堆的话,理论上内存有多大,就可以建多大.但32位的程序在64位系统上运行的时候,一个进程的堆大小应该是不可以超过4G的. 进程可以创建的线程数受可用虚拟内存的限制。 默认情况下,每个线程都有一兆字节的堆栈空间。 因此,您最多可以...原创 2018-08-14 17:21:04 · 5157 阅读 · 0 评论 -
MFC C++ Cstring与string互转
MFC C++ Cstring与string互转CString 转换成string我试了很多的方法,都不行,我用的vs2010------解决方案--------------------unicode:CString sz1 = L"abc";std::string sz2 = CT2A(sz1.GetBuffer()); //转化为非unicode.非unicode:CStri...转载 2018-08-03 09:56:19 · 134 阅读 · 0 评论 -
dll的加载顺序
总结:dll的加载顺序:(1)EXE所在目录;(2)当前目录GetCurrentDirectory();(3)系统目录GetSystemDirectory();(4)WINDOWS目录GetWindowsDirectory();(5)环境变量 PATH 所包含的目录。所以使用loadlibrary加载dll使用的路径,但是这个函数会忽略这个路径,只会按既定规则加载dll。所以如果要...转载 2018-08-03 11:11:12 · 2692 阅读 · 0 评论