我如何改变文本是通过ReadFile函数读取
How can I change text that is read via ReadFile function
如何更改通过ReadFile函数读取的文本?我使用detour来挂钩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;
}
我做错了什么?我该怎么修理它?
错误1:你应该检查nNumberOfBytesToRead,这是可能的1,所以你的代码溢出缓冲区。
错误2:您错过了填写lpNumberOfBytesRead.
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- ReadFile() 读取的字节数少于其参数中的指定值
- 使用 ReadFile WinAPI 读取'Binary'文件
- 如何读取具有ReadFile函数的大文件
- 带虚拟COM端口的USB串行设备-如果使用带USB路径的CreateFile(),则ReadFile()读取零字节
- ReadFile winapi在从虚拟盒共享文件夹读取时失败.GetLastError正在引发错误183
- 为什么 ReadFile() 不返回 0 ?程序尝试永远从管道读取数据
- 程序员思维过程:确定将ReadFile与Windows API一起使用时要读取的最大字节数
- windows ReadFile() 直到读取 sizeToRead 值才返回
- visual在C++中使用ReadFIle()函数时无法从文件中读取
- 创建文件2、读取文件和写入文件;为什么 ReadFile 不读取我在 WriteFile 中编写的内容?
- ReadFile FILE_FLAG_NO_BUFFERING如何读取两个扇区之间的数据
- 我如何改变文本是通过ReadFile函数读取
- ReadFile只读取一个缓冲区字符
- WriteFile()和ReadFile()异步不写入或读取
- C++(使用 <windows.h> 的串行通信) - 我如何事先知道 ReadFile() 方法将读取多少个字符