我々は、Unixのコンパイラでwmain()関数を使用することも、Windowsでのみ動作しますか?
-
19-09-2019 - |
質問
私たちは、Unixのコンパイラでwmain()関数を使用するか、それは、Windows用のみ\上で動作します?
解決
main
のための唯一の標準的なシグネチャがあります:
int main(void);
int main(int argc, char *argv[]);
しかし、自立型の実装は、他の署名を許可/拡張を提供することができます。しかし、これらは移植できるようにguranteedされていません。 wmain
は、Windows / VSの事のように見えます。これは* nixの/ GNU GCC上で動作する多くのチャンスがありません。
他のヒント
wmain
署名は、ワイド文字のコマンドライン引数を処理するには、Windowsに存在します。 WindowsアプリケーションがUTF16を好む一方で、一般的に、Unixアプリケーションは、Unicode文字列のエンコーディングのためにUTF8を好みます。 UTF8は、通常のchar
文字列を使用するため、標準main
署名は、Unicode対応のUnix appicationsには十分ます。
をあなたはmain
を使用し、Unicodeのコマンドラインパラメータを必要としないポータブルコンソールアプリケーションを作成する場合。あなたはUnicodeのコマンドラインパラメータが必要です場合は、それぞれの環境に適切な署名を可能にするプリプロセッサディレクティブを必要とします。
、QTのような、特別なフレームワークを使用します。
wmain()は、Windows固有です。ただ、_tmainのように、それが重要な場合は...
所属していません StackOverflow