私はアプリケーションをDに書いています。ダブ設定(ターゲットタイプ:実行可能)を使用してldc2コンパイラでコンパイルされています。コンパイルされたプログラムは、アプリケーションがGUIフレームワークを使用しているので、私は必要ないコンソールウィンドウを作成します。コンソールウィンドウを作成しないようにする方法が必要です。Dで書かれたプログラムを起動するときにコンソールを開かない方法
同様の動作と私が知っている唯一の他の例は-mwindowsフラグを有しているにMinGW64-GCCとC/C++プログラムをコンパイルしたとき。私はDプログラムには何も似ていません。ダビング設定やldcコンパイラのフラグは、私が望むことをしていないようです。誰が何をすべきか知っていますか?たとえそれが少なくとも私が望むことをすれば、別のコンパイラでも動作します。
アプリケーションをCMDまたはPowerShellから開くと、追加のコンソールが開かれません。この問題は、Windows GUIからアプリケーションを起動した場合にのみ発生します。
dub.json:
{
description (author etc.)
"targetType": "executable",
"platforms": [
"windows"
],
"dependencies": {
....
},
"versions" : [
....
],
"libs" : [
....
],
"dflags": [
"-m32",
"-static",
"-release"
]
}
コンパイルコマンド:
dub run --compiler=ldc2.exe
ソリューション:
dub.json
に"lflags":[
"-subsystem:windows",
"-entry:mainCRTStartup"
]
を次のようにリンカフラグを追加
これは、プログラムが別のコンソールから実行されていない場合、プログラム開始時にポップアップするコンソールを削除します。それはまた、通常のdメイン(void main()など)、winmainのエントリポイントの必要性を有効にします。 (あなたは、単にエントリフラグを残す場合には使用することができます)
ダブ設定ファイルに、 '' lflags ':["/ subsystem:windows"] 'オプションを追加することができます。 ...しかし、私はldc2でうまくいくかどうかは分かりません。試してみてください。具体的な構文は多少異なるかもしれませんが、スタックオーバーフローは私には '' -Wl、 - subsystem、windows "でもあるかもしれません。 –
は機能しませんでした。私はdub lflags [/ sub ..]とdflags -L = - サブシステム= windowsを試しました。 –