2014-05-25 16 views
0

如何更改通過ReadFile函數讀取的文本?我正在使用繞行來掛接ReadFile函數調用。它工作正常(我認爲是因爲調試消息框),但我不能更改從文件中讀取的文本。如何更改通過ReadFile函數讀取的文本

static BOOL(WINAPI * true_read_file)(
    HANDLE hFile 
    , LPVOID lpBuffer 
    , DWORD nNumberOfBytesToRead 
    , LPDWORD lpNumberOfBytesRead 
    , LPOVERLAPPED lpOverlapped) = ReadFile; 

BOOL WINAPI my_read_file(
    HANDLE hFile 
    , LPVOID lpBuffer 
    , DWORD nNumberOfBytesToRead 
    , LPDWORD lpNumberOfBytesRead 
    , LPOVERLAPPED lpOverlapped) 
{ 
    MessageBoxA(NULL, "my_read_file", "Some caption", MB_OK); 
    std::strcpy((char*)lpBuffer, "str"); // It doesn't work 
    return TRUE; 
} 

我在做什麼錯?我該如何解決它?

在此先感謝。

回答

0

錯誤1:您應該檢查nNumberOfBytesToRead,它可能是1,因此您的代碼溢出緩衝區。

錯誤2:您錯過了填充lpNumberOfBytesRead。

相關問題