-
January 10th, 2012, 10:57 PM
#1
VC++6 Writefile return 0 bytes written in Windows 7
Hi,
Part of the codes in my application use Writefile to write to a disk partition. It works in XP but not in Windows 7. The value of TempPos is zero after written. What is wrong? Will there be file access rights problem? Thanks
__int64 Tmp64 = (((__int64) DriveInfo->NTRelativeSector) + ((__int64) DriveInfo->RelativeSector)) * 512;
long TempPos = Tmp64 & 0xFFFFFFFF;
long TempPosHi = (Tmp64 >> 32);
SetFilePointer(MyDisk[DriveInfo->Drive], TempPos, &TempPosHi, FILE_BEGIN);
TempPos = 0;
WriteFile(MyDisk[DriveInfo->Drive], Buffer, DriveInfo->NumSectors * 512, (DWORD *) &TempPos, NULL);
-
January 11th, 2012, 12:38 AM
#2
Re: VC++6 Writefile return 0 bytes written in Windows 7
Hi,
Where are you trying to write? Is it some kind of a system folder?
Can you read file in that folder? Can you make a file in that folder?
Thank you.
-
January 11th, 2012, 02:00 AM
#3
Re: VC++6 Writefile return 0 bytes written in Windows 7
Originally Posted by KevinA
Hi,
Part of the codes in my application use Writefile to write to a disk partition. It works in XP but not in Windows 7. The value of TempPos is zero after written. What is wrong? Will there be file access rights problem? Thanks
Your mistake is assuming that all your calls will be successful without checking them.
Where is your check for SetFilePointer() and WriteFile() return codes? In addition, did you call GetLastError()?
Pay attention to "Return Value" in the links below.
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Regards,
Paul McKenzie
-
January 11th, 2012, 03:43 AM
#4
Re: VC++6 Writefile return 0 bytes written in Windows 7
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|