Как записать координаты мыши в текстовый файл в Win32 API? - PullRequest
0 голосов
/ 10 января 2011

Я хотел бы записать координаты мыши в текстовый файл.Вот мой код:

HANDLE hfile;
 DWORD nOut;
 POINT mouseCoords;
 int counter = 10;

 char buffer[10];

 /*CRETAE_ALWAYS - creates a new file OR overwrites existing one*/
 hfile = CreateFile(g_fileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

 /*Make sure that file is successfully created*/
 if ( hfile == INVALID_HANDLE_VALUE ) {
  MessageBox(NULL, "Cannot create file!", "Error!",
   MB_ICONEXCLAMATION | MB_OK);
  return 0; 
 }

 //while ( counter >= 0 ) {
  GetCursorPos(&mouseCoords);
  sprintf_s(buffer, "%d, %d", mouseCoords.x, mouseCoords.y);

  //buffer[0] = (char)mouseCoords.x;
  //buffer[1] = (char)mouseCoords.y;

  if ( !( WriteFile(hfile, buffer, 2/*strlen(buffer)*/, &nOut, NULL) ) ) {
   MessageBox(NULL, "Cannot write to file!", "Error!",
    MB_ICONEXCLAMATION | MB_OK);
   return 0;  
  }

Спасибо.

Я использую Win32 API, Visual Studio 2008, под Windows Vista.

РЕДАКТИРОВАТЬ:
Яполучение этих предупреждений (все они указывают на строку с sprintf_s):
предупреждение C4047: «функция»: «size_t» отличается по уровням косвенности от «char [7]»
предупреждение C4024: «sprintf_s»: отличаетсятипы для формального и фактического параметра 2
предупреждение C4047: 'function': 'const char *' отличается по уровням косвенности от 'LONG'
предупреждение C4024: 'sprintf_s': различные типы для формального и фактического параметра 3

1 Ответ

1 голос
/ 10 января 2011

sprintf_s() также необходимо указать размер буфера:

sprintf_s(buffer, sizeof buffer, "%d, %d", mouseCoords.x, mouseCoords.y);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...