最小的例子:
#include <Windows.h>
#include <string>
int main(int /*argc*/, char* /*argv*/[]) {
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //Behavior the same, with or without.
DWORD err = GetLastError();
std::string str;
return (int)err; //returns 127 iff line above uncommented, 0 iff commented
}
该程序返回127
,对应于ERROR_PROC_NOT_FOUND
(“找不到指定的过程。”)。请注意,在创建之前err
设置。该程序使用 MSVC 2017 在调试模式下编译。std::string
这种行为是预期的吗?如果没有,我可以得到一些确认(然后,我会提交错误报告)?