Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Некая ошибка WriteFile? (http://forum.oszone.net/showthread.php?t=111309)

Arrest 12-07-2008 19:21 849832

Некая ошибка WriteFile?
 
Помогите пожалуйста. Учу WinApi, написал небольшую программу:
PHP код:

#include <windows.h>


int WINAPI WinMain (HINSTANCE hThisInstance,
                    
HINSTANCE hPrevInstance,
                    
LPSTR lpszArgument,
                    
int nFunsterStil)

{
    
HANDLE fh;
    
LPCSTR towrite "Preved!";
    
DWORD written;
    
fh CreateFile("file.txt"GENERIC_WRITE00CREATE_NEWFILE_ATTRIBUTE_NORMAL0);
    
WriteFile(fhtowrite7NULLNULL);
    
CloseHandle(fh);
    
ExitProcess(0);
    return 
0;


Компилирую Dev-C++'ом, запускаю - Windows матерится:
Цитата:

pr.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.
При этом файл создается, и в него даже записаны данные! Если закомментировать строку с WriteFile - то все работает. Почему эта штука не работает?

mrcnn 12-07-2008 20:12 849853

MSDN: lpNumberOfBytesWritten
[out] Pointer to the number of bytes written by this function call. WriteFile sets this value to zero before taking action or checking errors.

4 параметр функции WriteFile является _ИСХОДЯЩИМ_. Функция пытается записать значение, а записывать некуда, возможно записывает в какую-то левую область данных, видимо, поэтому и матерится

Если так написать, то все ок: WriteFile(fh, towrite, 7, &written, NULL);

Arrest 12-07-2008 20:58 849888

mrcnn
Спасибо.


Время: 03:39.

Время: 03:39.
© OSzone.net 2001-