Ignore:
Timestamp:
Mar 30, 2008, 5:26:19 PM (17 years ago)
Author:
dai_9181
Message:

[469]にて生じてしまったcoutで出力できなくなる不具合を修正。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/BasicCompiler.cpp

    r469 r470  
    574574}
    575575
     576#include <fcntl.h>
     577#include <io.h>
     578
    576579int main()
    577580{
     
    583586    // グローバルローケルを日本語にする
    584587    locale::global(locale("japanese"));
     588    _setmode(_fileno(stdout), _O_BINARY);
    585589
    586590    //_Test();
     
    606610    }
    607611
    608     //ソースファイル名が与えられなかったとき
    609     if( program.GetSourceFilePath().size() == 0 )
     612    bool isSpecifiedSourceFilePathByCommandLine = false;
     613    if( program.GetSourceFilePath().size() > 0 )
    610614    {
     615        // ソースファイル名が与えられていたとき
     616        isSpecifiedSourceFilePathByCommandLine = true;
     617    }
     618    else
     619    {
     620        // ソースファイル名が与えられなかったとき
    611621        char temp[MAX_PATH];
    612622        if(!GetFilePathDialog(0,temp,BasicFileFilter,"コンパイルするファイルを指定して下さい",1))
     
    726736        hMainDlg=CreateDialog(hInst,MAKEINTRESOURCE(IDD_MAIN),hOwnerEditor,(DLGPROC)DlgCompile);
    727737
    728 #ifdef _DEBUG
    729         // VC++によるデバッグの場合は画面を出さない
    730         // ※別スレッドのウィンドウ ループとの不整合性がデッドロックを生む場合がある(特にステップ実行時など)
    731         PostMessage( hMainDlg, WM_COMMAND, IDOK, 0 );
    732 #else
    733         ShowWindow(hMainDlg,SW_SHOW);
    734 #endif
     738        if( program.IsKickedFromEditor() )
     739        {
     740            // エディタから起動されたとき
     741            PostMessage( hMainDlg, WM_COMMAND, IDOK, 0 );
     742        }
     743        else if( isSpecifiedSourceFilePathByCommandLine )
     744        {
     745            // コマンドラインでソースコード指定があった場合はウィンドウは表示せず、そのままビルドを開始する。
     746            MainThread(0);
     747
     748            ExitProcess( 0 );
     749            return 0;
     750        }
     751        else
     752        {
     753            ShowWindow(hMainDlg,SW_SHOW);
     754        }
    735755    }
    736756    SendDlgItemMessage(hMainDlg,IDC_SHOWERROR,BM_SETCHECK,BST_CHECKED,0);
Note: See TracChangeset for help on using the changeset viewer.