基本的に、私はSDLウィンドウアプリケーションを書くときには見たくないコンソールウィンドウを取得します。CバージョンSDL2とリンクしている間にDからコンソールを隠す
Cでは、答えは簡単です。リンカのSubSystemをWindowsに変更します。 SDLは残りを行います。それはmain
をSDL_main
に再定義するマクロを持っています。それはそれ自身の隠されたWinMain
機能の中から呼び出します。あなたの主な機能で議論を取り、すべてがスムーズに進むようにしてください。
Dでは、もう少し問題があります。 -L/SUBSYSTEM:WINDOWS
をリンカーに渡すだけでサブシステムを変更すると、私はmain
と宣言しました。SDLはWinMain
と宣言しています。処理方法はわかりません。私はvoid main()
からextern(C) int SDL_main(int argc, char*[] argv)
に署名を変更することで問題は解決すると思ったが、リンカはDのランタイムシンボルを見つけることができないと言った。 Cで書かれているエントリポイントと何か関係がありますか?
もう一方で、私の問題は、私がどのように放棄を設定したかであろう。私はthis repositoryから作業しています。これは、GitHubのすべての異なるDerelictリポジトリのライブアップデートアマルガムです。私のVisualDソリューションでは、私は3つの関連プロジェクトを持っています:SDL2とユーティリティーライブラリへのソースを含む自家製のDerelictプロジェクトと、hereというC-API SDL2とSDL2mainプロジェクト。私は3つの結果ライブラリーにコンパイルとリンクを行います.DerelictとSDL2mainは静的で、SDL2は動的です。私は、このセットアップが責められているとは言いがたいです。なぜなら、うまくいかないコンソールウィンドウを保存するだけだからです。 DMDに渡されるコマンドラインで
[ask]を参照し、[mcve]を提供してください。外部リンク**はカウントしません** – Olaf
あなたはwin32にいますか? –
@Olaf投稿された質問には問題はありません。それは適切に簡潔であり、必要なコードはすべて(ただし、ただ)掲載されます。確かに、[c]タグはおそらく貧弱な決定でした。明らかにする? – Mako