WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  API: CreateFile

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   API: CreateFile
server_mouse опубликован 12-02-2002 12:36 MSK   Click Here to See the Profile for server_mouse   Click Here to Email server_mouse  
Hi ALL!

Вот делаю так:
HANDLE log=CreateFile("c:\\tst.log",GENERIC_WRITE,FILE_SHARE_WRITE,
NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_SYSTEM,NULL);

if(log)
{
DWORD len;
WriteFile(log,buf,strlen(buf),&len,NULL);
CloseHandle(log);
}

В итоге физически на диске файл не создаётся, хотя под отладкой запись проходит нормально. В MSDN чего-то сказано про пути вида "\\?\C:\myworld\private". Пробовал делать и так "\\\\?\\c:\\tst.log", но безтолку.
Вправте ручонки плз.

qwertyuiop опубликован 12-02-2002 12:45 MSK     Click Here to See the Profile for qwertyuiop  Click Here to Email qwertyuiop     
HANDLE hfile = CreateFileA("c:\\log.txt",GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_RANDOM_ACCESS,NULL);
Drunkard опубликован 12-02-2002 13:51 MSK     Click Here to See the Profile for Drunkard  Click Here to Email Drunkard     
На первый взгляд, все нормально.
Для выяснения гадостей, вставь анализ на создание и запись файла. GetLastError() все сразу покажет. Типа такого:
hf=CreateFile(FullName,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE|FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL);
// Если файл открылся
if(hf!=INVALID_HANDLE_VALUE) {
// Здесь запись в файл
}
else {
Error=GetLastError();
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,Error,LANG_SYSTEM_DEFAULT,BufErr,80,NULL);
sprintf(Str,"Ошибка %u: %s",Error,BufErr);
MessageBox(hwnd,Str,sTitle,MB_SYSTEMMODAL|MB_OK);
return FALSE;
}
server_mouse опубликован 12-02-2002 14:16 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Опссссс.
Сорри люди! Я глюкнул и не смог найти системный файл. Всё действительно было нормально. И WindowsCommander не смог найти его, даже незнаю почему...

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.