最小限の例を引き起こすSTRING`:コンピレーション:: Windowsのエラーステータス
#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
}
このプログラムは、( "指定したプロシージャが見つかりませんでした")ERROR_PROC_NOT_FOUND
に対応する、127
を返します。 err
がに設定され、の前にstd::string
が作成されていることに注意してください。プログラムは、MSVC 2017でデバッグモードでコンパイルされます。
この動作は予期されていますか?そうでない場合は、いくつかの確認をすることができますか?(バグレポートを提出します)
プロセス起動時にプロセスで最後に発生したエラーを想定しています。 – pm100
実際に何かが文字列の構成に間違っていた場合は、例外または動的リンカーに失敗する可能性が非常に高くなります。 – cdhowie
'std :: string str;'をコメントアウトすると、同じ値になりますか?また、毎回同じ価値がありますか? – NathanOliver