2011-08-10 4 views
6

ははSystem.pasによると、それはTrue if compiled as console appとして文書化されています。 System.pasで、また、私はアプリがのShellExecuteを使用して、Delphiのアプリから起動された奇妙な問題を抱えている割り当てDelphiでSystem.IsConsoleがtrueになるのはいつですか?

{$IFDEF LINUX} 
    IsConsole := True; 
... 

があり、そしてそれは(予期しない)例外

を上げ、このコードに実行されます
if System.IsConsole then 
    raise Exception.Create(Msg) 

Project/Options/Linking/Generate console applicationでアプリケーションがコンパイルされていません。それ以外にIsConsoleをtrueに設定することはできますか?


それは常に真であるとしてデルファイXE2で、OSXのアプリケーションは、この変数を使用できないことに注意してください。それを見つけたQC Entry 98956Why Does My OSX FireMonkey App Think It Is a Console App ?

+0

'プロジェクト/オプション/リンク/コンソールapplication'と' {$ APPTYPE CONSOLE} '二つの別々のものを生成します。 –

+1

コードが設定されている可能性があります。 –

答えて

5

を参照してください:DCC32.EXEとDPR/cfgファイルを使用して作成された実行可能ファイルは、CFGはラインコンソールアプリケーションを作成します

-cc 

が含まれています。

Delphi 2009ではエンタープライズIDEはProject/Options/Linking/Generate console applicationダイアログで、この設定は表示されません。アプリケーションは古いDelphiのバージョンから移植されていて、何年もかけて何かが間違っていた可能性があります。

+0

この正確なことは一度私に起こったが、それは数年前だった。 msbuild対応版のDelphiから直接dcc32.exeを起動しない理由はたくさんありますが、これはほとんどの場合です。新鮮なターゲットディレクトリにすべてのソースファイルをコピーしますが、CGFせず、その後、スクリプトファイルから正しい設定でコンパイラを呼び出す - それ@Warren –

+0

はDCC32で解決するのは簡単です。私は、MSBuildのは、いくつかのあいまいな[準備](http://stackoverflow.com/questions/1821112/how-does-msbuild-find-the-delphi-search-path)が必要です、私たちの自動ビルドプロセスでのMSBuildへの移行のない利点を見ませんビルドサーバー上で動作するように - 多分これはコミュニティのwikiである可能性があります。あなたはビルド後の手順を使用して、コマンドラインでコンパイルDCC32ない場合) – mjn

+0

、ビルド後の手順は右、終わらないのですか? –

関連する問題