我々は、Unixのコンパイラでwmain()関数を使用することも、Windowsでのみ動作しますか?

StackOverflow https://stackoverflow.com/questions/2438297

質問

私たちは、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のコマンドラインパラメータが必要です場合は、それぞれの環境に適切な署名を可能にするプリプロセッサディレクティブを必要とします。

あなたは、クロスプラットフォームのGUIアプリケーションを作っている場合は、

、QTのような、特別なフレームワークを使用します。

wmain()は、Windows固有です。ただ、_tmainのように、それが重要な場合は...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top