Q_DECL_EXPORT int main(int argc, char **argv)
Q_DECL_EXPORT
この前はどういうint main(...)
意味ですか?
Q_DECL_EXPORT int main(int argc, char **argv)
Q_DECL_EXPORT
この前はどういうint main(...)
意味ですか?
QT ドキュメントからの抜粋:
ターゲット プラットフォームに応じて、Qt は必要な定義を含む特別なマクロを提供します。
- Q_DECL_EXPORT は、共有ライブラリをコンパイルするときに使用されるシンボルの宣言に追加する必要があります。
- Q_DECL_IMPORT は、共有ライブラリを使用するクライアントをコンパイルするときに使用されるシンボルの宣言に追加する必要があります。
QT コードは確認していませんが、おそらくこのマクロは次のようになります。
#ifdef _WIN32 || _WIN64
#define Q_DECL_EXPORT __declspec(dllexport)
#define Q_DECL_IMPORT __declspec(dllimport)
#else
#define Q_DECL_EXPORT
#define Q_DECL_IMPORT
#endif
__declspec(dllimport)
また__declspec(dllexport)
、シンボルを DLL から、または DLL に (それぞれ) インポートおよびエクスポートするようにリンカーに指示します。これは Windows 固有です。
特定のケースでは、このマクロはおそらくmain()
ライブラリの一部ではないため、おそらく削除できます。
これはキーワードではなく、さまざまなコンパイラ固有のキーワードをカプセル化して、関数を として宣言するマクロexported
です。
「共有ライブラリQ_DECL_EXPORT
の作成」も参照してください。
通常、他のライブラリまたは実行可能ファイルによってインポート (「使用」) されるために、ライブラリからエクスポートする必要がある関数を定義するためにライブラリで使用されます。
これまでのところ関数でこれを見たことはありませんmain
が、それはブラックベリー固有のものである可能性があります。一方で、このチュートリアルも関数でマクロを使用していないため、main()
おそらく削除できます。