私は以下のコードを持っていますが、それが== TRUE
か!= FALSE
であるかどうかはわかりません。WinAPI AttachConsole?
これは、現在のコードです:
void AttachConsole() {
bool has_console = ::AttachConsole(ATTACH_PARENT_PROCESS) == TRUE;
if (!has_console) {
// We weren't launched from a console, so just return.
// We could alloc our own console, but meh:
// has_console = AllocConsole() == TRUE;
has_console_attached_ = false;
return;
}
has_console_attached_ = true;
}
私はそれが!= FALSE
されるべきだと思うが、私はわからないんだけど?
ウィンドウで 'TRUE'は1、' FALSE'は0なので、あなたが考えている両方の方法が同じです – bruceg
'TRUE'は1かもしれませんが、ほとんどの' BOOL'関数は非ゼロ成功すれば、特に1ではなく、 '!= FALSE'を使用するのが最適です。この場合、0以外の値は 'bool'に代入されると' true'に変換されるので、Jerryの回答表示のように値を比較しないでください。 –
@ThomasMccaffery:この例題の関数を1行のコードに減らすことはできますか? 'void AttachConsole(){has_console_attached_ = :: AttachConsole(ATTACH_PARENT_PROCESS); } ' –