2011-01-10 18 views
0

マウス座標をテキストファイルに書きたいと思います。ここに私のコードです:Win32 APIのテキストファイルにマウス座標を書き込む方法は?

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; 
    } 

ありがとう。

私はWindows Vistaの下で、Visual Studio 2008のwin32 apiを使用しています。

EDIT:
私はこれらの警告を(彼らはsprintf_sとラインへのすべてのポイント)取得しています:
警告C4047: '関数': 'size_tのは、' 'のchar [7]' からの間接のレベルで
を異なります警告C4024: 'sprintf_s':正式なパラメータと実際のパラメータの異なるタイプ2
警告C4047: 'function': 'const char *'は 'LONG'からの間接的なレベルが異なります
警告C4024: 'sprintf_s':異なるタイプ正式および実パラメータ3

答えて

1

sprintf_s()も必要ですバッファのサイズを教えてくれました:

sprintf_s(buffer, sizeof buffer, "%d, %d", mouseCoords.x, mouseCoords.y); 
+0

nice nice。どうすればこれを逃すことができますか? – infinitloop

関連する問題