- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 基于存储的C语言文件操作常规问题分析(文本文件与二进制文件)
基于存储的C语言文件操作常规问题分析(文本文件与二进制文件)问题描述文本文件与二进制文件数据写入文本乱码问题fopen和open流式文件操作常用函数直接I/O文件操作常用函数问题描述我们都知道计算机中的数据都是以二进制存储的,也对不同的编码解码有所了解,比如ASCII、UNICODE、UTF-8编码等。 但当使用C语言对文件进行读写,会遇到了各种各样的问题,比如从文件中读取到的数据不是我们想要的数据,向文件中写入数据变成乱码,对C语言读写文件的各种参数不甚了解,读写位置与各种符号不好判断等问题。在程序编
2021-05-13 19:25:25 503
转载 C++重载()(强制类型转换运算符)
在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符。类型强制转换运算符是单目运算符,也可以被重载,但只能重载为成员函数,不能重载为全局函数。经过适当重载后,(类型名)对象这个对对象进行强制类型转换的表达式就等价于对象.operator 类型名(),即变成对运算符函数的调用。下面的程序对 double 类型强制转换运算符进行了重载。#include <iostream>using namespace std;class Complex{ doub
2020-08-07 23:26:15 1328 1
原创 Win32 API学习之进程和线程
内核对象要学习进程和线程,首先必须了解内核及内核对象是怎么回事。Win32程序在运行的时候,系统为其分配4GB的虚拟内存空间,其中低2G属于进程的私有空间,高2G是公用的系统空间(内核空间)。为了防止程序随意修改系统数据(高2G的数据),程序在运行时有两种模式,用户模式和内核模式,用户代码在用户模式下运行,系统程序在内核模式下运行。内核对象是系统提供的用户模式下代码与内核模式下代码进行交互的基本接口,本质是存储了相关数据的数据结构体,比如创建每个线程的时候都会在系统空间中生成相应的线程内核对象结构体.
2020-07-09 23:09:24 715
转载 C++全局变量的声明与定义
(1)编译单元(模块)在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作: 第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件; 第二步,将工程中所有的obj文件进行LINK,生成最终.exe文件。那么,错误可能在两个地方产生: 一个,编译时的错误,这个主要是语法错误; 一个,链接时的错误,主要是重复定义变量等。编译单元指在编译阶段生成的每个obj文件。 一个obj文件就是一个编译单元。 一个.cpp(.c)和它相应的.h文件共同组成了一
2020-05-10 15:10:32 1032
原创 VS2017 MFC使用Skin++界面库实例(最简单的方法为自己的MFC程序换肤)
MFC的界面太丑了,又不想学界面设计,找了好多资源,要么各种各样的错误对于我这样的小白来说很难解决,要么就是使用起来太复杂,暂时也没有太多时间去研究,后来终于找到了VS2017也能用,简单方便的Skin++了,来源于网络,还于网络。序号步骤说明1.下载Skin++皮肤库,拷贝SkinPPWTL.dll,SkinPPWTL.lib,SkinPPWTL.h以及皮肤文件到当前工程...
2020-05-05 01:45:55 3981 10
原创 多字节字符集与Unicode字符集(CString char*和wchar_t* 容易出错的原因)
1.基本概念2.L与_T3.char TCHAR 与 wchar_t,strcpy wcscpy与_tcscpy4.LPSTR,LPCSTR,LPTSTR,LPCTSTR,LPWSTR,LPCWSTR5.ANSI转Unicode(char 转 wchar_t)6.Unicode转ANSI(wchar_t 转 har)7.CString1.ANSI与UnicodeANSI:多字...
2020-04-03 19:03:09 4488
原创 精简汇编语言笔记(六)——跳转指令
EIP寄存器EIP是指令寄存器,存放当前指令的下一条指令的地址。跳转指令的实质的修改EIP的值跳转指令指令含义跳转条件jmp直接跳转无call直接跳转,ret返回无je , jz相等/结果为0 时跳转ZF=1jne , jnz不相等/结果不为0 时跳转ZF=0js结果为负时跳转SF=1jns结果为正时跳转SF=...
2020-01-14 00:10:25 1217
原创 精简汇编语言笔记(五)——标志寄存器EFLAGS
CF (bit 0) [Carry flag] 若算术操作产生的结果在最高有效位(most-significant bit)发生进位或借位则将其置1,反之清零。这个标志通常用来指示无符号整型运算的溢出状态。例: MOV AL,0xFE ADD AL,2 或 MOV AL,0x7F SUB AL,0xFFPF(bit 2) [Parity f...
2020-01-13 20:04:39 426
原创 精简汇编语言笔记(四) ——非跳转指令和小端存储
小端存储 大端存储模式就是在存储数据时,高地址存放低位数据,低地址存放高位数据比如:0x11223344 大端存储如下: 内存地址 数据 00000000 11 00000001 22 00000002 33 00000003 44 小端存储与大端存储刚好相反,高位地...
2020-01-13 19:11:57 605
原创 精简汇编语言笔记(三) ——通用寄存器及内存地址
1、通用寄存器 寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用...
2020-01-13 16:28:49 1463
原创 精简汇编语言笔记(二) ——原码、反码、补码及计算机的加减乘除
计算机上的二进制数据 在了解原码,反码和补码之前,让我们先来了解一下计算机和计算机上的数据。数据是信息的表现形式和载体,可以是符号、文字、数字、语音、图像、视频等。数据和信息是不可分离的,数据是信息的表达,信息是数据的内涵。数据本身没有意义,数据只有对实体行为产生影响时才成为信息。 所有的计算机数据在计算机中都是一串二进制数。计算机是如何辨别这些二进制数据呢?是通...
2020-01-08 21:17:50 1351
原创 精简汇编语言笔记(一) ——二进制、十六进制及数据宽度
高级语言,汇编语言和机器语言之间关系一、机器语言机器语言是计算机能直接识别的二进制代码,由机器指令集构成,能够直接被机器执行,不需要编译。是最低级的编程语言。目前机器语言使用很弱,除了机器生产厂家几乎不应用于其他。二、汇编语言汇编语言是由一百多条各种操作指令组成,汇编语言也属于低级语言。三、高级语言高级语言是在低级语言基础上进行指令集优化,让开发更契合于功能,应用广泛,如java...
2020-01-08 16:24:18 1311
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人