Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Visual C++ > 编写一个对文件按字节写入的程序floppyWrite.exe
【标  题】:编写一个对文件按字节写入的程序floppyWrite.exe
【关键字】:程序,文件,floppyWrite
【来  源】:CSDN.NET

编写一个对文件按字节写入的程序floppyWrite.exe

Your Ad Here

我写了一个基于x86的boot。想通过软盘启动。但是没有软盘,所以就安装了一个Vitual PC,然后虚拟了一个软盘,当然,这个软盘就是一个文件。我猜这个文件的第一个字节就是对应于实际的软盘的0面0道1扇。我想把可执行文件按照字节直接写到这个文件中去。结果证明,我得猜想是正确的。我得boot能够正常工作。

把关键代码写出来:

说明:BootSctr.img是启动程序的镜像。

            fl.vfd是虚拟软盘的文件

void CFloppyWriterDlg::OnButton1()
{

 HANDLE hFile=CreateFile("BootSctr.img",GENERIC_WRITE | GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
 BYTE bt[512];
 memset(bt,0,512);
 DWORD dwRead;
 ReadFile(hFile,bt,512,&dwRead,NULL);

 CloseHandle(hFile);
 //MessageBox(bt,"haha",0);
 HANDLE rFile=CreateFile("fl.vfd",GENERIC_WRITE | GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
 WriteFile(rFile,bt,512,&dwRead,NULL);
 CloseHandle(rFile);
}

顺便把boot的代码贴出来

org 07c00h
mov ax,cs
mov ds,ax
mov es,ax
call DispStr
jmp $

DispStr:
   mov ax,Bootmessage
   mov bp,ax
   mov cx,16
mov ax,01301h
mov bx,000ch
mov dl,0
int 10h
ret
Bootmessage : db "Hello, OS world!"
times 510-($-$$) db 0
dw 0xaa55



MFC中动态改变菜单:【上一篇】
请教各位高手一个VC++中有关声音文件的一个问题:【下一篇】
【相关文章】
没有相关文章
【相关评论】
没有相关评论
【发表评论】
姓名:
邮件:
随机码*
评论*
      
|  首 页  |  版权声明  |  联系我们   |  网站地图  |
CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.