当std::cout被调用时,使用了什么外部API ?(Windows)
When std::cout is called what external API is used? (Windows)
这是一个逆向工程问题。
在Windows 7上使用Microsoft Visual c++ 2008编译的二进制文件,当std::cout
被调用时。在内部,使用什么API来写入数据?WriteFile, fwrite, ConsoleOut?我的目标是在没有源代码或调试符号可用的std::cout上设置一个断点。
我相信它最终会使用WriteFile。如果您编译一个简单的hello world
:
#include <iostream>
int main(int argc, char **argv)
{
std::cout << "Hello" << std::endl;
return (0);
}
…然后做dumpbin /imports hello.exe
,你会得到它使用的外部函数的列表,你会发现它导入WriteFile
和WriteConsoleW
,但如果内存可用,后者仅用于打印一些标准库错误消息,而不是用于标准输出。
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++MySQL C api用户输入行
- 如何使用 AWS Transcribe C++ API 中的'StartTranscriptionJobRequest'?
- 将std::string传递给WriteConsole API
- 在函数内部的声明中初始化数组,并在外部使用它
- 定义外部时未解析的外部符号"struct API Api"
- 使用线程控制访问外部API的对象
- QT私有API未解决的外部符号
- 用相同的数据c++包装/铸造类和结构,以实现外部api
- 未解析的外部符号 - MySQL API C++
- 当使用时从外部隐藏类仅用于C++中的API内部
- IAudioClient::Initialize方法的未解析外部符号.API公司
- Qt 5+MSVC2013静态外部库LNK2001 Windows API
- 如何在使用外部c++ API时创建测试环境
- WINDOWS API 无法解析外部符号
- 混淆外部API调用c++
- 自动释放由外部api分配的对象
- 在设计类调用外部 API 时测试实现是否正确
- 当std::cout被调用时,使用了什么外部API ?(Windows)