FreeBASIC マニュアルのトップに戻る

FreeBASIC CompilerOptentry

目次→コンパイラ→コマンド・ラインを使うCompiler Option: -entry←オリジナル・サイト
目次コンパイラ・オプション一覧Compiler Option: -entry←オリジナル・サイト

コンパイラ・オプション: -entry 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

暗黙のユーザ主関数の公開エクスポート名を上書きします。

構文:
-entry < name >

パラメタ:
name
暗黙のユーザーの主関数の公開でエクスポートされた名前を上書きするカスタム名

記述:
-entry コンパイラオプションは、暗黙のユーザー主関数(起動コードとして fbc が自動的に生成)の公開エクスポートシンボルの名前を変更します。
これは、起動コードと暗黙のユーザー主に影響します。
これは、モジュールが主モジュールであるかどうかによっても影響を受けます。

デフォルトでは、fbcは、実行時の起動システムコードで必要とされるように、主モジュールに公開でエクスポートされた「主」シンボルを定義します。
現在、fbcによる「主」シンボルの使用を上書きする方法は、常に別々にコンパイルしてリンクする以外にありません。

進行:
- カスタム主関数名は、(基本)主関数と互換性を持たせるために、次のシグネチャ(同じパラメータ型、同じリターン型、同じ呼び出し規約)だけで宣言する必要があります:
'' internally the implicit main function is now named "custom_main"
Declare Function custom_main CDecl Alias "custom_main" ( ByVal argc As Long, ByVal argv As ZString Ptr Ptr ) As Long

- リンカと起動コードを満たすために、(基本)主関数も提供する必要があります。
これは、次の最小コード例に示すように、別のライブラリやフレームワーク、C、ASM、または fb 言語で定義されるかもしれません:
Function main CDecl Alias "main" ( ByVal argc As Long, ByVal argv As ZString Ptr Ptr ) As Long
    '' .....
    '' call the custom main
    Return custom_main( argc, argv )
End Function

- そして、-entry custom_main オプションを使ってコンパイルします。

注意:
この機能は開発中であり、将来的に変更される可能性があります(文書フォーラムの Compiler Option: -entry を参照してください)。
これに対処するより良い方法があるかもしれません:明示的に「主」を指定できるようなコンパイラ・オプション。

例:
fb 言語だけの最小限のコードを表示しようとするプログラム(option_entry.bas)例です:
'' option_entry.bas:

'' - 暗黙のユーザー主関数の代替エントリポイントとして、
''   代替の名前付き主関数を示すデモンストレーション
'' - コンパイルとリンクを別々のステップで行うこともできます。

'' compile: $ fbc -c -m option_entry option_entry.bas -entry custom_main
'' compile: $ fbc option_entry.o
'' OR
'' compile: $ fbc option_entry.bas -entry custom_main


'' 内部的には、暗黙の主関数の名前は「custom_main」になります。
Declare Function custom_main CDecl Alias "custom_main" ( ByVal argc As Long, ByVal argv As ZString Ptr Ptr ) As Long

'' しかし、リンカーとスタートアップコードを満足させるためには、まだ main() 関数が必要です。
'' - これは、他のライブラリやフレームワークで定義されているかもしれません。
'' - そうではないので、デモのためにここで定義します。
Function main CDecl Alias "main" ( ByVal argc As Long, ByVal argv As ZString Ptr Ptr ) As Long
    '' デモのためにカスタムメインを呼び出すだけです
    Return custom_main( argc, argv )
End Function


'' ---------------------------------
'' START OF USER'S IMPLICIT MAIN
'' 内部的にこれは「custom_main」という名前で、
'' カスタムフレームワークによって自動的に呼び出されます

Print "hello"
Sleep

'' END OF USER'S IMPLICIT MAIN
'' ---------------------------------

バージョン:
参照:
コマンド・ラインを使う に戻る
コンパイラ・オプション一覧 に戻る
←リンク元に戻る プログラム開発関連に戻る


ページ歴史:2021-10-12 03:54:02
日本語翻訳:WATANABE Makoto、原文著作者:fxm

ホームページのトップに戻る

表示-非営利-継承