当前位置: 首页 > news >正文

DLL动态库实现文件遍历功能(Windows编程)

源文件: 文件遍历功能的动态库,并支持用户注册回调函数处理遍历到的文件 · a8f80ba · 周不才/cpp_linux study - Gitee.com

知识准备

1.Windows中的数据类型

2.DLL导出/导入宏

使用__declspec(dllexport)修饰函数,将函数标记为导出函数存放到导出表中,目的是当其他程序使用该动态库时,就可以通过导出表来使用这些函数(DLL项目本身)

使用__declspec(dllimport)修饰函数,将函数标记为导入函数,目的是当其他程序使用该动态库时,编译器能通过标记知道哪些是由DLL外部导入的函数,从而生成适当的代码来链接这些函数(其他使用DLL动态库的程序)

3.OutputDebugStringW()函数
void WINAPI OutputDebugStringW(_In_opt_ LPCWSTR lpOutputString  // 要输出的宽字符串
);

 功能:向调试器输出调试信息

4.FindFirstFileW()函数
HANDLE FindFirstFileW([in]  LPCWSTR            lpFileName,        // 搜索模式(路径+通配符)[out] LPWIN32_FIND_DATAW lpFindFileData     // 接收文件信息的结构
);

功能:搜索指定路径下的文件

输出:成功返回搜索句柄,用于后续的FindNextFileW函数或FindClose函数,并在lpFindFileData存储搜索到的文件信息;失败返回INVALID_HANDLE_VALUE

5.WIN32_FIND_DATAW
typedef struct _WIN32_FIND_DATAW {DWORD    dwFileAttributes;      // 文件属性FILETIME ftCreationTime;        // 创建时间FILETIME ftLastAccessTime;      // 最后访问时间FILETIME ftLastWriteTime;       // 最后修改时间DWORD    nFileSizeHigh;         // 文件大小的高32位DWORD    nFileSizeLow;          // 文件大小的低32位DWORD    dwReserved0;           // 保留字段DWORD    dwReserved1;           // 保留字段WCHAR    cFileName[MAX_PATH];   // 文件名(长文件名)WCHAR    cAlternateFileName[14];// 8.3格式的短文件名
} WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;

WIN32_FIND_DATAW是用于接收FindFirstFileW函数和FindNextFileW函数搜索到的文件信息的数据结构

6.wcscmp()函数
int wcscmp(const wchar_t* ws1, const wchar_t* ws2);

功能:比较两个宽字符串

输出:ws1小于ws2返回负值;ws1等于ws2返回0;ws1大于ws2返回正值

http://www.xdnf.cn/news/908353.html

相关文章:

  • 浅谈不同二分算法的查找情况
  • hot100 -- 8.二叉树系列
  • 3D Web轻量化引擎HOOPS Communicator的定制化能力全面解析
  • LlamaIndex 工作流简介以及基础工作流
  • Linux驱动:class_create、device_create
  • java面试场景题:电商平台中订单未⽀付过期如何实现⾃动关单
  • 本地部署企业邮箱,让企业办公更安全高效
  • 【51单片机】0. 基础软件安装
  • Blazor-表单提交的艺术:如何优雅地实现 (下)
  • WorldExplorer:基于文本生成的可探索3D虚拟世界
  • 深克隆java对象的方式
  • 基于 openEuler 22.03 LTS SP1 构建 DPDK 22.11.8 开发环境指南
  • Xshell 详细安装与配置教程:从下载到高效使用
  • error: subprocess-exited-with-error【已解决】
  • docker 部署redis集群 配置
  • 【学习笔记】单例类模板
  • 深入理解二叉搜索树:原理到实践
  • libGL error
  • IDEA安装迁移IDEA配置数据位置
  • SQL进阶之旅 Day 19:统计信息与优化器提示
  • 10个成功案例剖析|融质AI创新实践
  • 【多线程初阶】阻塞队列 生产者消费者模型
  • Python备忘
  • CST人工电源网络阻抗计量校准
  • Python打卡训练营学习记录Day46
  • Arch-hyprland常用配置
  • 【Algo】常见组合类数列
  • 在centos7.9重置qcow2 root密码-qcow2忘记密码
  • 《0/1背包》题集
  • 【大厂机试题解法笔记】最差产品奖