ورود

View Full Version : مشکل در نوشتن در فایل متنی



p3m4ni
سه شنبه 12 شهریور 1392, 01:12 صبح
سلام
فایل ساخته میشه ولی موقع نوشتن ارور Access violation writing location 0x00000000 میده .مشکل کجاست؟
LPCWSTR NAME = L"_log.txt";
HANDLE myhf;
DWORD dwBytesToWrite ;//= (DWORD)strlen(DataBuffer);
LPDWORD dwBytesWritten = 0;
myhf=CreateFile( NAME,
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN,NU LL);

LPCVOID TextInFile = L"aaaaaaaaa";
if ( myhf != INVALID_HANDLE_VALUE)
{
WriteFile(
myhf,
TextInFile,
100,
dwBytesWritten,
NULL
);
//printf_s("VALID_HANDLE_VALUE");
}
else
printf_s("INVALID_HANDLE_VALUE");

راستی...کد در VC++‎2012 هست.

p3m4ni
چهارشنبه 13 شهریور 1392, 09:43 صبح
اینم راه درستش:

LPCWSTR NAME = L"_Output.BIN";
HANDLE hAppend;
DWORD dwBytesToWrite ,dwPos;
DWORD dwBytesWritten = 0;

hAppend = CreateFile(NAME,
GENERIC_WRITE,
0, // do not share
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);


TextInFile.Format (L"somethings write in the file");
dwBytesToWrite = (DWORD) TextInFile.GetLength() * 2 ;
dwPos = SetFilePointer(hAppend, 0, NULL, FILE_END);
LockFile(hAppend, dwPos, 0, dwBytesToWrite, 0);
WriteFile(
hAppend,
TextInFile,
dwBytesToWrite,
&dwBytesWritten,
NULL

);