Функция WriteFile C ++ - PullRequest
       1

Функция WriteFile C ++

0 голосов
/ 07 февраля 2012

Я пытаюсь использовать функцию WriteFile.Я работал над этим примером

http://msdn.microsoft.com/en-us/library/ms900134.aspx

Здесь буфер, который передается в WriteFile, заполняется из ReadFile.Но я не хочу делать это таким образом.Я просто хочу написать строку типа «Пример текстового тестирования WriteFile» или что-то в этом роде.Но я не уверен, какие значения должны иметь параметры.Я попытался осмотреться в Google, но ничего не смог найти.Кто-нибудь знает, как мне это сделать?

Ответы [ 2 ]

8 голосов
/ 07 февраля 2012

С MSDN :

BOOL WINAPI WriteFile(
  __in         HANDLE hFile,
  __in         LPCVOID lpBuffer,
  __in         DWORD nNumberOfBytesToWrite,
  __out_opt    LPDWORD lpNumberOfBytesWritten,
  __inout_opt  LPOVERLAPPED lpOverlapped
);
  • Первый аргумент - дескриптор файла.
  • Второй аргумент - указатель на данные, которые выхочу написать.В вашем случае это строка.
  • Третий аргумент - это длина данных, которые вы хотите записать.В вашем случае это будет что-то вроде strlen(str).
  • Четвертый аргумент - указатель на переменную DWORD, которая получит количество фактически записанных байтов.
  • Пятый и последнийпараметр может быть НЕДЕЙСТВИТЕЛЕН на данный момент.

Вы используете его следующим образом:

char str[] = "Example text testing WriteFile";
DWORD bytesWritten;

WriteFile(fileHandle, str, strlen(str), &bytesWritten, NULL);

Если WriteFile возвращает FALSE, то произошла ошибка.Используйте функцию GetLastError, чтобы узнать код ошибки.

2 голосов
/ 07 февраля 2012

Простой пример написания строки:

(hOutFile - это дескриптор открытого файла при вызове CreateFile):

{
    DWORD dwBytesWritten = 0;
    char Str[] = "Example text testing WriteFile";
    WriteFile( hOutFile, Str, strlen(Str), &dwBytesWritten, NULL );
}

РЕДАКТИРОВАТЬ: Проверьте MSDN определение функции для каждого параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...