资源简介
x86-x64体系探索及编程-随书代码.rar

代码片段和文件信息
// merge.cpp : Defines the entry point for the console application.
//
#include “stdafx.h“
#include “..\include\MyHeader.h“
#include
#define BUF_SIZE 512
#define MAX_LINE 250
#define MAX_CONFIG_LINE 30
typedef struct
{
TCHAR inFileName[MAX_PATH]; /* 输入文件名 */
DWORD inOffset; /* 输入文件偏移,以 512 字节为单位 */
TCHAR outFileName[MAX_PATH]; /* 输出文件名 */
DWORD outOffset; /* 输出文件偏移 以 512 字节为单位 */
DWORD nCount; /* 块数 */
//HANDLE hInFile; /* 输入文件 HANDLE */
//HANDLE hOutFile; /* 输出文件 HANDLE */
} MERGE_CONFIG *LPMERGE_CONFIG;
MERGE_CONFIG mergeConfig[MAX_CONFIG_LINE];
static DWORD mergeConfigIndex = 0;
static BOOL GetMergeConfig(LPTSTR lpLine);
static void PrintMergeConfigTable();
static VOID ReportError(LPCTSTR userMessage DWORD exitCode BOOL printErrorMessage);
int _tmain(int argc _TCHAR* argv[])
{
HANDLE hIn hOut;
FILE *fp;
errno_t err;
TCHAR chLine[MAX_LINE];
BYTE buf[BUF_SIZE];
DWORD i nIn nOut;
BOOL bSuccess = TRUE;
TCHAR msgError[100];
/* 打印作者信息 */
_tprintf(_T(“\n“));
if (argc > 1)
{
ReportError(_T(“Usage: merge\n“) 1 FALSE);
}
if ((err = _tfopen_s(&fp _T(“config.txt“) _T(“r“))) != 0)
{
ReportError(_T(“ “) 2 TRUE);
}
while (_fgetts(chLine BUF_SIZE fp))
{
if (!GetMergeConfig(chLine))
{
ReportError(_T(“Error: merge config please check the config.txt“) 3 FALSE);
}
}
for (i = 0; i < mergeConfigIndex; i++)
{
hIn = CreateFile(mergeConfig[i].inFileName GENERIC_READ FILE_SHARE_READ NULL OPEN_EXISTING FILE_ATTRIBUTE_NORMAL NULL);
if (hIn == INVALID_HANDLE_VALUE)
{
_stprintf_s(msgError 100 _T(“: %s“) mergeConfig[i].inFileName);
ReportError(msgError 4 TRUE);
}
hOut = CreateFile(mergeConfig[i].outFileName GENERIC_WRITE FILE_SHARE_READ NULL OPEN_EXISTING FILE_ATTRIBUTE_NORMAL NULL);
if (hOut == INVALID_HANDLE_VALUE)
{
_stprintf_s(msgError 100 _T(“: %s“) mergeConfig[i].outFileName);
ReportError(msgError 4 TRUE);
}
if (SetFilePointer(hIn mergeConfig[i].inOffset * 512 0 FILE_BEGIN) == INVALID_SET_FILE_POINTER)
ReportError(_T(“Error: move the input file pointer for read“) 5 TRUE);
if (SetFilePointer(hOut mergeConfig[i].outOffset * 512 0 FILE_BEGIN) == INVALID_SET_FILE_POINTER)
ReportError(_T(“Error: move the output file pointer for write“) 5 TRUE);
bSuccess = TRUE;
__try
{
while ((mergeConfig[i].nCount != 0) && ReadFile(hIn buf BUF_SIZE &nIn NULL) && (nIn > 0) && bSuccess)
{
if (!WriteFile(hOut buf nIn &nOut NULL))
{
//_tprintf(_T(“entry #%d:\t%s ---> %s:\tfailure\n“) i mergeConfig[i].inFileName mergeConfig[i].outFileName);
bSuccess = FALSE;
}
mergeConfig[i].nCount--;
}
}
__finally
{
CloseHandle(hIn
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 355328 2009-06-24 22:03 tools\dd.exe
文件 10240 2011-11-07 20:51 tools\merge.exe
文件 35328 2012-08-03 18:36 tools\merge源代码\merge\Debug\merge.exe
文件 358160 2012-08-03 18:36 tools\merge源代码\merge\Debug\merge.ilk
文件 551936 2012-08-03 18:36 tools\merge源代码\merge\Debug\merge.pdb
文件 136 2012-08-01 11:59 tools\merge源代码\merge\include\MyHeader.h
文件 5946 2012-08-03 18:36 tools\merge源代码\merge\merge\Debug\BuildLog.htm
文件 663 2012-08-03 18:33 tools\merge源代码\merge\merge\Debug\merge.exe.em
文件 728 2012-08-03 18:33 tools\merge源代码\merge\merge\Debug\merge.exe.em
文件 621 2012-08-03 18:36 tools\merge源代码\merge\merge\Debug\merge.exe.intermediate.manifest
文件 39123 2012-08-03 18:36 tools\merge源代码\merge\merge\Debug\merge.obj
文件 3276800 2012-08-03 18:33 tools\merge源代码\merge\merge\Debug\merge.pch
文件 67 2012-08-03 18:36 tools\merge源代码\merge\merge\Debug\mt.dep
文件 11721 2012-08-03 18:33 tools\merge源代码\merge\merge\Debug\stdafx.obj
文件 363520 2012-08-03 18:36 tools\merge源代码\merge\merge\Debug\vc90.idb
文件 167936 2012-08-03 18:36 tools\merge源代码\merge\merge\Debug\vc90.pdb
文件 6859 2012-08-03 18:36 tools\merge源代码\merge\merge\merge.cpp
文件 4492 2012-08-03 18:30 tools\merge源代码\merge\merge\merge.vcproj
文件 1427 2012-09-04 15:36 tools\merge源代码\merge\merge\merge.vcproj.MK-B1A6C8647613.Administrator.user
文件 1171 2012-08-03 18:30 tools\merge源代码\merge\merge\ReadMe.txt
文件 210 2012-08-03 18:30 tools\merge源代码\merge\merge\stdafx.cpp
文件 233 2012-08-03 18:30 tools\merge源代码\merge\merge\stdafx.h
文件 498 2012-08-03 18:30 tools\merge源代码\merge\merge\targetver.h
文件 10906624 2012-09-04 15:36 tools\merge源代码\merge\merge.ncb
文件 886 2012-08-03 18:30 tools\merge源代码\merge\merge.sln
..A..H. 7680 2012-09-04 15:36 tools\merge源代码\merge\merge.suo
目录 0 2012-09-04 15:36 tools\merge源代码\merge\merge\Debug
目录 0 2012-09-04 15:36 tools\merge源代码\merge\Debug
目录 0 2012-09-04 15:36 tools\merge源代码\merge\include
目录 0 2012-09-04 15:36 tools\merge源代码\merge\merge
............此处省略965个文件信息
相关资源
-
AN_BLE-SDKDH-C1_Teli
nk BLE SDK DeveloperHan - 微软masm汇编编译器
- 汇编之masm6.11
- Bochs入门教程[操作系统第一步]
- 汇编语言编译器masm5.0
- uCOS编译环境建立 BC45 TASM
- masm 6.14安装版
- nasm-2.15-x64
- Vulkan Cookbook 无水印转化版pdf
- QT酷炫界面开发指南《QmlBook》
- ILASM32位 + 64位
- Numerical simulation and prediction of radio f
- HP ProBook S系列商务笔记本电脑
- HP ProBook B系列商务笔记本电脑
- HP ProBook 5330m 超轻薄笔记本电脑
- HP ProBook 4230s 商务笔记本电脑
- Macbook air superdrive win10 x64驱动
- 完美解决苹果MacBook无法对NTFS格式的
- Delphi XE10 Seattle移动开发指南完整版
- HP EliteBook 8460p 商务笔记本电脑
- 惠普ProBook Elitebook BIOS密码重置工具
- masm6.15版本免费
- 12个iebook简洁按钮,swf格式
- 黑客攻防技术宝典-反病毒篇 The Anti
- ebook_120517f.rar
- kali-linux-cookbook
- .net mvc3完整案例
- IBM Rational Harmony Deskbook _基于模型的系
- 完整中文版Introduction to Lens Design Wit
- TensorFlow Machine Learning Cookbook+无码高清
评论
共有 条评论