32位程序专用文件操作函数

汇编宏实现32位数组移位及测试 本文介绍了一个使用MASM语法编写的汇编宏mShiftDoublewords,该宏可对32位整数数组进行左移或右移操作,并通过测试程序验证其功能。代码示例包含宏定义和测试逻辑,展示了如何在小端字节序下处理数组移位。核心技术包括SHLD和SHR指令的应用,适用于汇编语言学习和底层开发实践。 阅读详情

    摘自:http://topic.youkuaiyun.com/t/20020630/16/839385.html

WINAPI中还有一组32位程序专用的文件操作函数,这也是M$推荐使用的函数,但我还是推荐使用BCB的库函数,除非功能不足,由于此类函数众多,我就只对重要的作简要介绍,如果真需要时可查询帮助系统。

 



函数
  功能
 
CreateFile()
  创建或打开一个文件
 
CopyFile(),CopyFileEx()
  拷贝文件
 
CreateDirectory(),CreateDirectoryEX()
  创建目录
 
DeleteFile()
  删除文件
 
GetDriveType()
  获取驱动器类型
 
GetFileAttributes(),GetFileAttributesEx()
  获取文件属性
 
GetFileSize()
  获取文件字节大小
 
GetFullPathName()
  取得文件全路径文件名
 
GetShortPathName()
  取得文件8.3格式全文件名
 
GetTempFileName()
  生成一个临时文件名
 
GetTempPath()
  取临时文件名的路径
 
LockFile(),LockFileEx()
  锁文件
 
MoveFileEx()
  移动或更名文件
 
ReadFile(),ReadFileEx()
  读文件
 
SearchPath()
  搜寻文件
 
SetFileAttributes()
  设置文件属性
 
SetFilePoint()
  设置文件读写位置
 
UnLockFile(),UnLockFileEx()
  对文件解除锁定
 
WriteFile(),WriteFileEx()
  写文件

 

DeleteFile( "sdfdsf.txt ")

RenameFile( "old.txt ", "new.txt ")

 

 

STM32程序的编译、链接和启动分析 本篇文章以STM32为硬件平台,使用GNU GCC作为开发工具,详细分析Compile 、Link 、Loader的过程以及Image(二进制程序)启动的详细分析。整个过程分析涉及到RW可读写段从Flash到Mem的Copy,BSS段的初始化,Stack和Heap的初始化,C库函数移植、利用Semihosting 实现基本的IO等内容。基本可以让你从更深刻的层面理解Source -> Com... 阅读详情

相关推荐

STM32启动过程分析

1. 程序和数据在Flash和SRAM上的存储结构 在讲解 STM32 启动过程之前,我们先来了解一下 STM32 的程序和数据在 Flash 和 SRAM 上到底是如何存储的,因为有了这方面的知识之后,非常有助于我们理解 STM32 启动过程中还做了哪些隐藏的工作。关于详细的程序和数据存储分布信息,我们可以从Keil生成的 .map 文件中得到,要生成 .map 文件操作如下: 1.1 STM32的程序在flash上的存储结构 STM32 的程序在 Flash 上的存储结构如下图所示: 栈顶指针 M

luobeihai的博客 7789

介绍几个操作文件的API函数

在VC中,大多数情况对文件的操作都使用系统提供的 API 函数,但有的函数我们不是很熟悉,以下提供一些文件操作 API 函数介绍: 一般文件操作 APICreateFile打开文件要对文件进行读写等操作,首先必须获得文件句柄,通过该函数可以获得文件句柄,该函数是通向文件世界的大门。ReadFile从文件中读取字节信息。 在打开文件获得了文件句柄之后,则可以通过该函数读取数据。Wri

伯虎的网海日志 3399

琢石成器:Windows 32位汇编语言程序设计源代码详解

32位汇编语言是早期计算机编程的核心语言,它直接与硬件交互,提供了高效的资源控制方式。通过掌握32位汇编语言,开发者能够深入理解计算机内部的工作原理,包括数据处理、内存管理、以及如何通过寄存器和指令来控制硬件操作。MASM(Microsoft Macro Assembler)是一个强大的汇编语言开发工具,由微软公司开发。它是早期Windows平台上最著名的汇编器之一,广泛应用于系统底层开发和教学。MASM支持x86架构的32位汇编语言,具有高度的可定制性,并允许开发者使用宏来简化重复代码。

weixin_29317963的博客 1113

Window 32位 编程总结

Lesson01win32 Window 32位 编程 1.Windows编程基础 2.Windows的字符 3.窗口处理 4.消息处理 5.绘图 6.对话框 7.控件Win32编程: Windows API:函数接口一、Windows编程基础 1.Windows应用程序分类 1.1 控制台程序 DOS程序,本

BlackWhale_Slogan 3887

Linux系统安装AutoDockTools、AutoGrid和AutoDock并实现分子对接(详细讲解)

linux系统为centos7.0 按照下面操作安装AutoDockTools(MGLTools) 1. 下载安装包,链接(https://ccsb.scripps.edu/mgltools/downloads/),我的linux系统是64位,下载红色标记源代码,拷贝入linux目标文件夹下。 2. shell终端进行安装: 1. 终端进入安装包所在文件夹,并获取root权限;赋予代码安装权限; cd /home/... #目标文件夹,根据目标程序文件位置进行更改 su #获

carlos_zhao的博客 1万+

WAVE格式

一.wave格式概述 Wave文件格式是用于多媒体文件存储的Microsoft RIFF(Resource Interchange FileFormat)的一个子集。每一个RIFF文件以一个文件头开始,后面是一系列数据块。Wave文件通常是包含“WAVE”块的RIFF文件。而该“WAVE”块由两个子块组成,称为“fmt”块。“fmt”块用于确定数据格式,并且“data”块包含实际的样本数据,

yejia1280的博客 4390

SetFilePointer 使用

今天在使用SetFilePointer 的时候出现了溢出的问题,使用了SetFilePointerEx,出现了指针错位的问题,其实只要设置LONGLONG64位,然后分别设置SetFilePointer 的高低位不会出现溢出的问题   下面是转的一篇使用这个接口的博文 DWORD SetFilePointer(   HANDLE hFile,   LONG lDistanceToMov...

weixin_34258838的博客 878

Redis Lua引擎UAF漏洞CVE-2025-49844深度剖析与复现实践

内存安全是软件系统稳定性的基石,其核心原理在于确保程序对内存的访问始终处于合法、受控的状态。在C/C++等手动管理内存的语言中,Use-After-Free(释放后使用)是一种典型的高危内存安全漏洞,它源于已释放的内存区域仍被程序指针引用,导致数据混乱或程序崩溃。这类漏洞的技术价值在于其往往能突破高级语言的安全边界,直接威胁进程本身,危害等级极高,常见于数据库、浏览器等核心基础设施。在Redis这样的高性能内存数据库中,其内置的Lua脚本引擎为复杂操作提供了强大支持,但同时也引入了沙箱环境下的复杂内存对象生

weixin_42530732的博客 365

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

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

chenyijun的专栏 1116

Spring AI实现RAG(检索增强生成)详解与实践

支持多种文件格式的文档加载实现高效的向量存储和检索构建智能的问答系统提供可追溯的知识服务RAG技术为AI应用提供了强大的知识增强能力,使得模型能够基于实际文档生成准确、可靠的回答。

beiduofen2011的专栏 1239

嵌入式八股文-ARM

嵌入式八股文总结(ARM篇)-优快云博客现象:I2C死锁就是时钟线SCL一直处于高电平,数据线SDA一直处于低电平。从机拉低数据线SDA时(发送应答信号给主机时或发送数据0时)主机意外复位,主机复位后时钟线SCL就为高电平了,此时,SCL为高电平而SDA为低电平,主机就以为有其他设备占有了总线,而SCL为高电平时 数据位SDA不允许有变化,意思是:主机就一直等待时钟线SDA拉高,而从机就一直等待时钟线SCL拉高 就造成了死锁的现象。解决方法:1.选择带有复位功能的从设备,复位后SDA被拉高。

m0_63127436的博客 1261

32位linux系统调用

//打开 读 写 跳转 关闭 删除 普通文件 #define __NR_creat 8 #define __NR_open 5 #define __NR_read 3 #define __NR_write 4 #define __NR_lseek 19 #define __NR__llseek 140 #define __NR_close 6 #define __NR_unlink 10 //创建

pk_20140716的专栏 1582

手把手教你用示波器搞定PCIe 5.0 REFCLK时钟信号测量(附完整参数解读)

本文详细介绍了如何使用示波器进行PCIe 5.0 REFCLK时钟信号测量,包括示波器与探头的选择、关键参数的测量方法及解读,以及实战中的常见问题与解决方案。通过手把手教学和完整参数解读,帮助硬件工程师高效完成时钟信号测量,确保系统稳定性。

weixin_28704565的博客 359

基于WINAPI的文件操作

基于WINAPI的文件操作   WINAPI提供了两种文件操作函数,一组是为了和16位程序兼容,这种函数比较简单;而另一种是专门为32位程序设计,在使用时就显得麻烦些,下面我就把这两组函数一一介绍:一、和16位程序兼容的一组函数 函数 说明 对应BCB库函数

jianxiong8814的专栏 1814

STM32开发者必看:如何在正点原子探索者开发板上快速移植CANopenNode协议栈

本文为STM32开发者提供了在正点原子探索者开发板上快速移植CANopenNode协议栈的实战指南。文章详细介绍了从环境准备、硬件抽象层适配到协议栈初始化与测试的全过程,并分享了PDO配置与性能优化等关键技巧,帮助开发者高效实现CANopen标准化通信。

weixin_29173777的博客 464

蓝鸟四轴飞控系统C程序V3.0(基础版本)深度解读

2. 解析遥控通道数据(油门 / 横滚 / 俯仰 / 偏航),转换为标准化值(-1000~+1000);3. 封装PID初始化(PID_Init,配置KP/KI/KD、输出限幅、积分限幅);,包含姿态角(Attitude_Data.Roll/Pitch/Yaw)、角速度(Gyro_Data.X/Y/Z)、遥控值(RC_Data[0~5])、电池电压(Bat_Volt)、电机PWM值(Motor_PWM[0~3])、系统状态(Sys_State),校验和通过Check_Sum()函数计算;

搏博的专栏 344

C# 32位程序在64位系统下运行中解决重定向问题

  在64位的Windows操作系统中,为了兼容32位程序的运行,64位的Windows操作系统采用重定向机制。目的是为了能让32位程序在64位的操作系统不仅能操作关键文件文夹和关键的注册表并且又要避免与64位程序冲突   在64位的Windows操作系统上,可以运行32位的应用程序,这是通过一个叫做WOW64的模拟器来实现的。WOW64 是一个由操作系统提供的兼容性环境,它使得 32 位...

weixin_34044273的博客 577

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

32位x86汇编语言程序代码

本文基于32位Windows MASM汇编,结合顺序运算、分支判断、分段函数、循环排序、子程序、地址表、系统API七大实战模块,梳理常用指令用法、代码模板与编译规范。同时讲解栈帧、调用规则、变量命名等易错要点,配套完整可运行案例,适合汇编入门学习与实践参考。

web_strong的博客 637

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

解决在64位系统中,32位程序访问注册表重定向到 WOW6432Note 里的问题

使用Wow64DisableWow64FsRedirection 函数可禁用文件系统重定向. 默认情况下系统是启用文件系统重定向的。 使用此函数需要注意下面事项(以下来自MSDN的翻译): 此函数适用于64位系统中32位程序需要访问本机 system32 文件夹. 默认情况下, WOW64 文件系统重定向是启用的. Wow64DisableWow64FsRedirection 和 Wow64...

danxuezx的专栏 3196

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

《Windows32位汇编语言程序设计教程》第10章 内存管理和文件操作

在Windows环境下,内存管理是操作系统的核心功能之一,它负责为应用程序分配和管理内存资源,确保各个程序能够安全、高效地运行。对于应用程序开发者来说,了解并正确使用内存管理机制至关重要,这不仅关系到程序的性能,还影响到程序的稳定性和可靠性。文件操作是应用程序中常见的任务之一,包括创建文件、打开文件、读取文件内容、写入文件内容以及关闭文件等基本操作。在Windows环境下,通过调用Windows API函数可以实现各种文件操作功能。

qq_40844444的博客 668

64位Win7下Cygwin32 gdb调试时程序文件系统访问函数失败

64位Win7系统安装了32位cygwin, 其他操作都正常,但使用gdb程序程序时,如果文件带路径,fopen/fstat等文件操作函数返回错误,如果不用gdb则正常。网上查找没有结果,后来只能重新安装cygwin64,果然问题没再现。 安装的cygwin64版本是1.7.19(0.266/5/3), 建立的桌面快捷方式运行有bug, 运行会提示如下错误。修改快捷方式属性,设置一下起...

diechi5441的博客 337

《Windows32位汇编语言程序设计教程》第04章 第一个窗口程序

定义数据段,用于存放程序使用的数据.DATA;定义窗口类名,以 0 结尾表示字符串结束;定义窗口标题,以 0 结尾表示字符串结束;定义代码段,存放程序的指令.CODE;定义程序入口点,程序从这里开始执行;程序主体指令将写在这里;这里 hInstance 是当前实例句柄,用于标识程序的运行实例;hPrevInstance 在 Win32 环境中通常为 0;lpCmdLine 是命令行参数;nCmdShow 用于指定窗口的显示方式,如最大化、最小化或正常显示ret。

qq_40844444的博客 746

《Windows 32 位汇编语言程序设计教程》第 01 章 背景知识

程序框架:讲解 Windows 32 位汇编语言程序的基本结构,包括代码段、数据段、堆栈段等的定义和作用。合理组织程序段有助于提高程序的可读性和可维护性,同时也影响着程序的运行效率。段的属性与链接:介绍段的各种属性,如段的定位类型、组合类型等。讲解如何在汇编程序中设置段的属性,以及在链接过程中这些属性如何影响最终的可执行文件。

qq_40844444的博客 502

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

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

chenyijun的专栏 766
上一篇: 多线程编程之一——问题提出
下一篇: C++ builder 的文件读写操作总结 (来源:论坛整理 作者:佚名)
cloud_xu
博客等级 码龄16年 9粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值