Win32汇编——文件操作

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

一、创建和读写文件

打开、创建文件:CreateFile  (文件名需全路径)

关闭: CloseHandle

调整文件指针: SetFilePointer

        无GetFilePointer函数,可通过

invoke  SetFilePointer,hFile,0,NULL,FILE_CURRENT

         获得当前的文件指针。

设置文件结尾:SetEndOfFile

有截断文件和扩充文件的功能。常与SetFilePointer 配合。

读文件: ReadFile

写文件: WriteFile

(读写两函数可以是同步的也可以是异步的,读写的扩展函数EX只能用于异步读写文件)

强制清空数据缓冲区:FlushFileBuffers

加解锁:LockFile  UnlockFile


;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; FormatText.asm
; 文件读写例子 —— 将 Unix 格式的文本文件(以0ah换行)转换成 PC 格式
; 的文本文件(以0dh,0ah换行),读写文件操作使用文件操作函数。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;重要部分:
;********************************************************************
; 循环读出文件并处理每个字节
;********************************************************************
		xor	eax,eax
		mov	@dwBytesRead,eax
		.while	TRUE
			invoke	ReadFile,@hFile,addr @szReadBuffer,sizeof @szReadBuffer,addr @dwBytesRead,NULL
			.break	.if	! @dwBytesRead
			invoke	_FormatText,addr @szReadBuffer,@dwBytesRead,@hFileNew
		.endw
		
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[Win32]ReadFile/WriteFile 的文同步读写 先来看看我很早之前写的两个函数,他们实现了简单的直接读写文,读文是把文一股脑都读进来,写文是覆盖原来的文写入 //参数:文名,输出的字符串指针 //返回值:读取的大小 DWORD MyReadFile(char* fn, char* &out) { HANDLE pfile; pfile = CreateFile(fn, GENERIC_READ, 0, NULL, OPEN_E 阅读详情

相关推荐

Win32 SDK Gui编程系列之-- 读写初始化文(INI文)

只处理按Enter键时的信息,其他信息委托EDIT控的默认WindowProc函数处理。这与主窗口的WindowProc函数将未处理消息的处理交给DefWindowProc函数是一样的。将设置为全局变量的默认WindowProc函数的地址作为第1个参数,然后和DefWindowProc函数一样,将参数并排,调用CallWindowProc函数,从而执行默认的WindowProc函数。如下所示,生成EDIT控后,使用SetWindowLongPtr函数,注册自己的EditWindowProc函数的地址。

weixin_55465758的博客 437

C/C++/WIN32 三种方式实现读写文

/************C**************/#include "stdafx.h"#include <Windows.h>#include<iostream>#include <fstream>#define MAX_LINE 1024   //定义txt中最大行数。可调整更改using namespace std;int main(){ char...

weixin_42054810的博客 7055

汇编宏与结构体编程实践

本文介绍了多个与汇编语言编程相关的实践问题,包括创建用于读取按键信息的宏、使用结构体和条汇编指令模拟随机事、设计支持三操作数的算术宏指令、Win32 API 函数的使用,以及与内存管理、文件操作和链表结构相关的编程技巧。重点展示了宏定义、结构体设计和系统调用在底层编程中的应用。

ipfs8storage的博客 704

win32写入(包括追加到文尾)WriteFile CreateFile

// Win32FileIO.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include void writeFile(LPCWSTR filePath,LPCVOID content, int size) { //创建文 HANDLE hFile = CreateFile(filePath, //创建文的名称。 GEN

熊老大的专栏 1万+

WIN32 写入log文

创建log目录及其文:void CLog::CreateLog() { int err; CString path = DefaultPath(); path.Append(LogPath); CString name; SYSTEMTIME systime; GetLocalTime(&systime); name.Format(_T(

MikeDai的博客 1093

掌握WIN32汇编:Iczelion教程与实例解析

Windows操作系统提供了一个庞大的API(Application Programming Interface)集合,供开发者用来执行各种任务。WIN32 API作为Windows API的一个版本,是为32位Windows平台设计的一系列底层函数和接口,它们允许程序员直接与操作系统进行交互,创建图形用户界面、处理文系统、管理进程、控制硬设备等。WIN32 API主要分为以下几类:用户界面(UI):涉及窗口创建、消息处理、控绘制等,是用户交互的直接体现。图形设备接口(GDI)

weixin_29050829的博客 929

Win32汇编实现矩阵相乘及结果输出

矩阵乘法是线性代数中的一个重要概念,它是一种特殊的矩阵运算,用于在两个矩阵之间定义乘积。设有两个矩阵A和B,A的列数必须等于B的行数,才能进行乘法运算。设A是一个m×n的矩阵,B是一个n×p的矩阵,则它们的乘积C将是一个m×p的矩阵。矩阵C的每一个元素c_ij是通过下面的公式计算得到的:这里,(a_{ik}) 表示矩阵A第i行第k列的元素,(b_{kj}) 表示矩阵B第k行第j列的元素。

weixin_42593130的博客 1125

WIN32汇编语言实现俄罗斯方块游戏源码解析

WIN32汇编语言,作为低级编程语言的一种,为Windows操作系统下的软开发提供了强大的性能和灵活的系统资源控制。它允许开发者通过直接与硬和操作系统底层交互,来编写高效的代码。了解WIN32汇编语言,对于深入理解Windows操作系统的内部运行机制及优化系统性能非常有帮助。

weixin_42234168的博客 525

内存管理和文件操作

罗云彬《win32汇编语言程序设计》 内存的分配、释放以及文I/O的有关操作,它们的关系比较密切。 进行与文有关的操作之前往往需要分配内存,以便做文读写的 缓冲区,而要将内存中的数据保存起来,往往需要需要写文。        内存映射文。通过这个功能将文的内容直接映射到内存中, 并使用读写内存的方法对文进行读写,内存映射文是内存管理函数的一种, 但它必须与文件操作函数配

citongke1的专栏 626

Win32汇编学习(3)之int 21中断

int 21h -- dos功能调用 含有近100个功能,提供了应用程序所需要的大多数服务,包括打开文、关闭文、读文写文、读键盘输入、写显示屏、读取或设置系统日期和时间,以及一大堆控制变量。 通过给AH寄存器赋值,然后调用INT 21H指令,计算机就会根据AH寄存器中的值执行相应的操作给AH寄存器赋值效果如下 AH功能调用参数返回参数00程序终止(同INT 20H)CS=程序段前缀

1395

win32汇编之——记事本程序

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34250434的博客 735

masm32

第一课 基本概念   翻译:Lxx,校对:LuoYunBins Win32 ASM Pagehttp://asm.yeah.net 我们先假设您已知道了如何使用MASM。如果您还不知道的话,请下载 win32asm.exe ,并请仔细研读其中所附带的文档资料。好

cg2680139的专栏 2112

Win32.Bogus.4096.asm

comment *Win32.Bogus.4096 苒圹圹?苒圹圹?苒圹圹? Disassembly by 圹?圹?圹?圹?圹?圹? Darkman/29A 苘苒圻 咣圹圹?圹圹圹? 圹圮苘?苘苘圹?圹?圹? 圹圹圹?圹圹圹?圹?圹?Win32.Bogus.4096 is a 4096 bytes runtime/direct action EXE virus. Infectsfirst file

gzfqh的专栏 →底层代码研究 980

_masta_的 Win95 汇编教程 Part 1

           -               -----=========-----      -------==========================================-------------------===    _masta_的 Win95 汇编教程  Part 1    ===----------      -------================

SENDFREE的专栏 1253

WINDOWS 环境下32位汇编语言程序设计》第10章 内存管理和文件操作(2)

本章涉及内存的分配、释放,以及文I/O的有关操作,之所以把这两部分集中在一章中,是因为它们的关系比较密切——进行与文有关的操作之前往往需要分配内存,以便用做文读写的缓冲区,而要将内存中的数据保存起来往往需要写文Windows操作系统中有一个新的概念:内存映射文。通过这个功能将文的内容直接映射到内存中,并使用读写内存的方法来对文进行读写,内存映射文是内存管理函数的一种,但它必须与文件操作函数配合使用。接下来介绍与文、目录、磁盘操作有关的内容。

chenyijun的专栏 1113

汇编语言全接触-12.内存管理和文输入输出

每一个应用程序都有自己独立的4G地址空间,这种内存模式叫做“平坦”型地址模式,所有的段寄存器或描述符都指向同样的起始地址,所有的地址偏移都是32位的长度,这样一个应用程序无须变换选择符就可以存取自己的多达4G的地址空间。WIN32的文输入/输出API和DOS下的从外表上看几乎一样(译者注:也许不管内部实现多么不同,可以想象所有的文系统暴露给应用程序编写者的接口的功能应该基本相同,不同的只是把DOS下的中断方式处理文输入/输出变成了对API函数的调用。该函数接受一个先前打开的文句柄。

qq_41237850的博客 655

初学汇编

创建he.asm 文 .386 .model flat, stdcall option casemap:none include c:\radasm\masm32\include\windows.inc include c:\radasm\masm32\include\kernel32.inc includelib c:\radasm\masm32\lib\kernel32.

Fly_Sky 349

汇编语言全接触-69.Win32汇编教程十三

以上的 Api 是对 Win.ini 操作的,当然对于我们来说,用的更多的是在程序运行的目录中建立自己的 ini 文,如果需要对自己的 ini 文件操作,就要用到另一组 Api,这一组 api 和上面的很象,只要把上面一组的 Profile 换成 PrivateProfile(私有的)就可以了,参数中也相应的多了一个 ini 文名的参数。如果 Win.ini 没有指定的 Section,API 会新建立一个并写入数据,如果已经存在,则先删除原来 Seciton 中所有的 Key 值然后写入新的。

qq_41237850的博客 1016
上一篇: PE编程汇总
下一篇: 注册表添加 右键功能
kisbuddy
博客等级 码龄18年 24粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值