如何更改通过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 :(得分:0)
错误1:你应该检查nNumberOfBytesToRead,它可能是1,所以你编码超出了缓冲区。
错误2:你错过了填写lpNumberOfBytesRead。