FreeBASIC IDE - PoseidonFB マニュアル

目次

By Yung Kuan Hsu 2017, 2018, 2020
(許 永ェ)

翻訳 渡辺真 2017/09/03,2020/09/06

前書き
PoseidonFB について
実行環境
使い方
インストール
FreeBASIC のヘルプを表示
プロジェクト
構文解析器(パーサー)
カスタム・ツール
デバッグ
コンパイラ・オプション

前書き

 poseidon は、D言語 のIDE で、2005年に Shawn Liu によって Dsource(http://www.dsource.org/projects/poseidon)で始まりました。
私(Yung Kuan Hsu)は、2006年から、このプロジェクトに参加しています。Digitalmars D V1.0 と DWT(SWT port to D)による poseidon コードです。
いくつかの理由で、私は 2011年以降プロジェクトを中止しています(そして Dsource はダウンしています...)。
いずれにしても、私は目標を達成しました(私は、プログラム言語を使って IDE を構築し、IDEを使って IDEソース自体をコーディングするのはクールだと思います!)
2015年頃、Linux でコーディングをテストしてみましたが、Linux とクロス・プラットフォームでのコーディングもクールだと思います。

私はコーディングを 30年ほど前に学び始めました。
最初は GW-BASIC で、後に Quick-BASIC と Visual-BASIC 5.0/6.0を覚えました。
私の好きなプログラミング言語は、28歳になるまで BASIC です
目次に戻る↑

PoseidonFB について

三つ又のほこを手に持った海神 PoseidonFB は freeBASIC 用の統合開発環境で、次のような特長を備えています。
( 1)構文の強調表示
( 2)プロジェクト管理をサポート
( 3)自動補完とヒント表示
( 4)パーサー(PARSER)で構文解析ツリーを形成し、変数 / 型 / 関数を表示
( 5)テキストとプロジェクトで検索/置換
( 6)定義とメンバー関数へのジャンプをサポート
( 7)UNICODE(Utf-8/16/32) をサポート
( 8)GDB(GNU Project Debugger) デバッグをサポート
( 9)ショートカットキーをお好みで設定可
(10)単一ファイル・コンパイル / プロジェクト・コンパイル / 即実行
(11)など...
 
目次に戻る↑

実行環境

PoseidonFB は、IUP GUIフレームワークDigitalmars D言語 V1.0 を使って記述されており、一部のサポートファイルは freeBASIC を使って記述されています。
PoseidonFB は Windows と Linuxで実行できます。
IUP がコンパイル済みライブラリを提供しなくなったため、32ビット Linux バージョンの開発は中止しました。
poseidonFB は完全にオープンソースのプロジェクトです。

Windows:
Digital Mars D V1.076 32bit with Tango standard library
IUP 3.27 with Modified iup_scintilla.dll
Windows 7 64bit

Linux:
Digital Mars D V1.074 64bit with Tango standard library
IUP 3.27( GTK2 / GTK3 ) with Modified iup_scintilla.so
Linux mint 17~19.3 64bit
gcc 4.8 ( D backend )
Ubuntu 12.04 64bit and gcc 4.6 ( Appimage GTK2 )
Ubuntu 16.04 64bit and gcc 4.8 ( Appimage GTK3 )

 作者のホームページ:
https://bitbucket.org/KuanHsu/poseidonfb
 ダウンロード:
https://bitbucket.org/KuanHsu/poseidonfb/downloads/
 紹介:
https://www.freebasic.net/forum/viewtopic.php?f=8&t=23935
目次に戻る↑

使い方

日本語表示
日本語入力
オプション → ツール → 文字コードを設定 → Default
とした上で コンパイルして実行(Complie Run) すると、日本語(Shift JIS)を使えます。
この状態で 保存(Save) すると .bas ファイルは、Shift JIS になっています。

注:poseidonFB_rev476.7z は日本語表示に不具合がありましたが、新バージョンで解消しています。

 UTF16LE BOM として Save すると .bas ファイルは、Unicode で保存されます。
 UTF8 として Save すると .bas ファイルは、UTF-8 で保存されます。
 
含めるレベル 渡辺注:
poseidonFB は、自動補完で、コードに含まれる *.bi も解析して関数を抽出して候補表示してくれます。
一般に、 *.bi にはさらに別の *.bi が含まれています。
このため、poseidonFB の parsedTrees が非常に大きくなり、自動補完に時間がかかることになります。
そこで、「含めるレベル」オプションを「1」とすると、 *.bi の解析を直下だけに止めます。
キー入力が重たい場合は、「1」にすることを推奨します。
 
目次に戻る↑

インストール

Windows と Linux に poseidonFB をインストールする方法です。

Windows:

ダウンロード

Windows パソコンに poseidon FB をインストールするのは簡単です。
poseidonFB_rev***.7z ファイルをダウンロードして、適当なフォルダに展開してください。

ポセイドンの最新バージョンをダウンロードできる URL :
https://bitbucket.org/KuanHsu/poseidonfb/downloads/

注意:
poseidonFB を動かすために、Visual C ++ 2010再頒布可能x86 が必要です。
poseidonFB は、Windows 2000 ではテストしていません。

 
実行

'poseidonFB.exe' をクリックすると poseidonFB が実行されます。

 

Linux:

影像14

まずシステム・モニタがシステム情報を取得したことを確認します。

例として右の図を見て下さい。
オペレーティングシステムは、Linux mint 18.2 64bit(MATE 1.18.0)です。
カーネルコアは 4.8.0-53 です。

 
影像15
影像16

IUP の Web サイトにアクセスしてダウンロードします。
https://webserver2.tecgraf.puc-rio.br/iup/en/download.html

 

影像17
影像23
sourceforge ページ(https://sourceforge.net/projects/iup/files/)をクリックします。
IUP のバージョンを選択した後、[Linuxライブラリ]を選択します。
「_Linux」の後ろのファイル名が、カーネルコアのバージョンと一致するものを選択します。
そしてダウンロードします。

注意:
poseidonFB は linux mint 18.2 でコンパイルされています

 
影像24

ダウンロードしたファイルを、作成したフォルダに解凍します。

 
影像27 影像26 影像25

右クリックして端末画面を開き、キー入力します :sudo./install

<Enter> を押して続行します。
libs(*.so)がシステムにインストールされ、IUP のインストールが完了します。
 
影像28

それから、poseidonFB をダウンロードします。
https://bitbucket.org/KuanHsu/poseidonfb/downloads/

 
影像29 影像30

インストール先のフォルダに解凍します。
「poseidonFB_x64」をクリックして、poseidonFB IDE を実行します。

 
以上が、2つのオペレーティングシステムに poseidonFB をインストールする方法です。
難しいことではありません。

注意:
写真は Linux mint 18.2 Mate のものですが、作者は Linux mint 18 Cinnamon オペレーティング環境で Linux バージョンを編集およびコンパイルしています。
したがって、Linux mint Cinnamon では、実行時の表示と効果が正しいです。

目次に戻る↑

FreeBASIC のヘルプを表示

ヘルプを登録
影像35 影像36
poseidonFBは、コードの予約語に対応したヘルプ文書の該当ページを、複数の chm から検索表示することができます。

[CHM 版 FreeBASIC 日本語マニュアル] と、[CHM 版 Win32API リファレンス日本語版] は、下記でダウンロードできます。
http://makoto-watanabe.main.jp/freebasic/

Window9 日本語 Help CHM ファイルは、下記でダウンロードできます。
http://makoto-watanabe.main.jp/freebasic/Window9.html

zip から chm を抽出して、英数字のパスに保存します。
「オプション」→「マニュアル」の「┼」ボタンを押して、使いたい chm の名前とパスを登録します。


プログラム文書を開いて、コードの予約語の上にカーソルがある状態で F1 キーを押すと、該当キーワードのヘルプが表示されます。

予約語で右クリックしてポップアップ画面を表示して、[型を表示]を選択してもヘルプを表示できます。

マニュアルは、chm のパスに日本語が含まれておらず英数字のみなら、メニューの、「オプション」 → 「マニュアル名」をクリックしても、表示されます。


追記:コードの変数にカーソルを置いて[型を表示]を選択すると、この変数の型が表示されます。これも便利です。

 
目次に戻る↑

プロジェクト

プロジェクト

プロジェクト
poseidonFB はシンプルなプロジェクト管理システムとペアになっいます。
プロジェクトを使って、ファイル/コンパイラ・オプション/指定されたコンパイラ/指定されたインクルードファイル・ディレクトリ/指定されたリンクライブラリ・ディレクトリ...、などできます。

まず、新しいプロジェクトを作成することから始めます:
メニューの、プロジェクト → 新しいプロジェクト をクリックすると、新しいプロジェクト設定ウィンドウがポップアップ表示されます。
メインタブは 2つあります。1つは一般で、さまざまな設定が含まれています。
もう 1つはインクルード...で、インクルード・パスとライブラリ・パスの設定が含まれています。

poseidon のプロジェクトはフォルダ・ベースで、すべてのプロジェクト情報は、1つの D.poseidon ファイルに格納されます。
1つのフォルダが、1つのプロジェクトになります。
このため、新しいプロジェクトを作成するには、まず作業ディレクトリを指定し、その後にプロジェクト名を指定します。
このプロジェクトの作成は完了せず、警告メッセージがポップアップ表示されます。


 新しいプロジェクト:
新しいプロジェクトを作成する。

 種類:
コンソール・アプリケーション / 静的ライブラリ / 動的リンク・ライブラリ。

 プロジェクト・ディレクトリ:
新しいプロジェクトの作成中に一度設定するだけです。プロジェクトの作業パスは D.poseidon がある場所になります。

 主ファイル:
使用しない。

 目標名:
PoseidonD(PoseidonFB のパーサー) は、-ofTargetName をコンパイラに渡します。サフィックスを設定する必要はありません。

 コンパイル・オプション:
コンパイラ・オプションを設定します。eq: -odobjs -L/SUBSYSTEM:windows:4

 FBC パス:
このプロジェクトの D コンパイラのフルパスを設定すると、PoseidonD(PoseidonFB のパーサー) は、sc.ini(Windows)または sc.conf(linux)を検索して、phobos や tango などのデフォルト・モジュールをロードします。

 焦点:
コンパイル・オプション/コンパイラ・パスの、複数設定

「焦点」の名前とコンパイル・オプション/コンパイラ・パスを設定します。そして、「適用」をクリックして保存します。
ドロップダウン・ボタンを使って選択し、「消しゴム」ボタンを使って削除します。

プロジェクトプロパティダイアログを表示せずに「焦点」をすばやく選択することもできます。PoseidonFB の下部で、プロジェクト名を右クリックしてクイック選択します。
 
プロジェクト  「インクルード...」タブは、インポートパスとライブラリ検索パスの設定です。

 インクルード・パス:
-Ipath をコンパイラに渡します。

 ライブラリ・パス:
-L-Lpath をコンパイラに渡します(-L を optlinkに)

[追加]をクリックして、リストにパスを追加します。
[削除]をクリックして、リストからパスを削除します。
[編集]をクリックして、リストから既存のパスを編集します。
上下の[矢印]をクリックして、リスト内のパスの順序を変更します。
[追加]か[編集」ボタンをクリックすると、サブダイアログが表示されます:


パスは、直接設定するか、[開く]ボタンをクリックしてパスを選択できます。
 
PoseidonD(PoseidonFB のパーサー) は、2つの方法で、リンクするライブラリを追加できます。
(1)ソースコードに pragma(lib、"libraryName")を追加します。
たとえば、コンパイル中に iup.lib をリンクするには、以下をソースコードに追加します。
Windows:
pragma(lib, "iup.lib" );
Linux:
pragma(lib, "iup" );

(2)「コンパイル・オプション」に libraryName を追加します。
コンパイル・オプション



注意:
実際、プロジェクト名が指定されていないと、poseidonFB は、プロジェクト・ファイルを作成する時に、ディレクトリ名に従ってプロジェクト名を自動的に作成します。
 
作業ディレクトリは、手入力するか、アイコンをクリックして、フォルダ参照ダイアログを開き、選択して指定できます。
たとえば、D ドライブに testBASIC という名前のフォルダーを作成し、フォルダー参照のダイアログ・ボックスで選択します。
 
追加
ツリー
[OK]をクリックすると、プロジェクト・ツリーが生成されます。
プロジェクト・ツリーのブランチを右クリックして、ファイルを追加/追加/削除/削除/名前変更して、プロジェクト・ファイルの内容を編集します。
プロジェクト→プロジェクトを保存 で内容を保存します。

プロジェクト・ツリーの構造を見てみましょう。

Others は、任意のファイルを配置でき、プロジェクトが作成されたときに1つになります そして、コンパイラに送信します。この例では、ICON リソースファイルです。
 
プロジェクト
追加
削除
プロジェクト名の項目を右クリックすると、メニューがポップアップ表示されます。
[エクスプローラーで開く]を選択すると、システムのメインライブラリを使ってプロジェクト・ディレクトリが開きます。

「Sources」「Includes」「Others」を右クリックすると、右のメニューがポップアップ表示されます。
作成したファイルを追加する場合は、ここから追加します。poseidonFBが関連する場所を自動的に選択します。

フォルダ・アイコンをクリックすると、右のメニューがポップアップ表示されます。作成できるのは新しいファイルとフォルダのみで、場所は現在のプロジェクト・ディレクトリに基づいています:

ファイル項目でマウスの右ボタンをクリックすると、右のメニューがポップアップします。
[削除]を選択すると、プロジェクトからファイルが削除されるだけでなく、ファイルも削除されることに注意してください。
 
プロパティ 最も基本的なプロジェクトには、プロジェクト名とディレクトリだけが含まれています。
他のフィールドに他の設定(コンパイラ・オプションなど)を入力できますが、プロジェクトに含まれる設定は1つだけではありません。
目標/コンパイル・オプション/コンパイラ・パス/インクルード・パス/ライブラリ・パスを含む、5つの項目について、複数の設定の組合せをプロジェクトに追加できます。
[焦点]項目に、マルチセット・プロジェクトの名前を入力します。

名前を設定し、上記の5つのフィールドに設定を入力します。設定後、[適用]を押して保存してください。

注意:
右のサンプル画像では、目標名がx32/KUAN であることがわかります。この項目には、フォルダー・ディレクトリ名を含めることができます。
poseidonFB は最初にファイルの構築時にフォルダーが存在するかどうかを検出し、フォルダーが作成されていないと、ファイルの構築時に自動的に追加します。
このディレクトリは Project Dir の下のサブディレクトリです。
例のプロジェクト・ディレクトリは D:/testBASIC で、目標名の絶対場所は D:/testBASIC/x32/KUAN です。
 
焦点 [適用]を押した後、[焦点]項目をクリックできます。
KUAN 項目が追加されていることがわかります。
選択して切り替えることができます。リストで空白の項目を選択すると、焦点のない元の設定に戻ります。
 
ステータス OK ボタンを押すと、新しいフォーカス項目を選択した場合、エディタ最下段のステータスバーに、プロジェクト名に加えてフォーカス項目ロゴが追加されていることがわかります。
プロジェクトロゴを右クリックすると、クイック選択ウィンドウがポップアップします。
毎回[プロジェクトプロパティ]ダイアログウィンドウを開かずにすばやく切り替えられます。

上記の例のように、KUANプロジェクトを選択することは、32ビットの FreeBASIC コンパイラーを使って、-v を使うことを意味します。
 
構築 ビルド後、右のように表示されます。
 
構築 クイックメニューを使って、<null> 空の項目を選択すると、右のようになります。
 
目次に戻る↑

構文解析器(パーサー)

poseidon は、組み込みの字句解析(トークン・スキャナー)と構文解析器(パーサー)を備えています。
最初にファイルを読み込んでスキャンして、字句のかたまり(トークン)を生成し、次にトークンを解析して、AST(Ab-stract Syntax Tree 抽象構文木)でなく、parsedTree を直接生成します。

以下の情報を持つすべての parsedTree ノード:
(1) Kind
(2) Name
(3) Protection
(4) Type ( with Parameter )
(5) Base
(6) LineNumber
(7) EndLineNumber

PoseidonFB アウトライン ツリーのノード情報を読み取って、コード補完とコールチップを実装し、定義にジャンプして型情報などを表示できます。
parsedTree の構造体は、PoseidonD(PoseidonFB のパーサー) アウトラインとして表示されます:

最初のノードは D_MODULE 種類のノードです。
次に、その子レイヤーは、多くの D_IMPORT と D_TEMPLATE(子 D_FUNCTION のある集約テンプレート)x2です。
D_VERSION、D_TEMPLATE の子は、D_FUNCTION と、その子レイヤー D_ALIAS、D_VARIABLE…

ノードをダブルクリックすると、LineNumber 情報が読み込まれ、ドキュメントを特定の行にスクロールします。
(IUP treenode には parsedTree ノードへのポインタがあります)

ツールバー/検索リストのある「概観」パネル:
「概観」パネル
5つのボタンは、左から右に以下の内容です。
(1) 閉じる
(2) 概観ノードの表示変更(引数/戻り型(型):4回クリックできます
(3) 行番号を表示
(4) 頭から単語を検索します。(検索バー用)
(5) 現在のドキュメントのパーサーを更新(テキストを解析します。ファイルを保存する必要はありません)
(6) 概観パネルを非表示

「閉じる」をクリックすると、同じレイヤーのノードが折りたたまれます。
「パラメータの表示/戻り値の型(型)」は、4つの表示種類があります: 全て / パラメータのみ / 型のみ / なし。
クリックするたびに、ドキュメントの全ての既存の概観が表示変更されます。
 
行番号を表示 「行番号を表示」は「概観ノードの表示変更」のように、全てのノードの行番号を表示します。
クリックするたびに、ドキュメントの全ての既存の外観が表示変更されます。

ノードの名前を検索する場合は、検索バーに単語を入力してから、「Alt」+「DOWN」(Linux では「Enter」での検索をサポート)を押すか、ドロップダウンボタンをクリックして検索対象を指定します(Linux はサポート外)。
検索では、常に大文字と小文字は区別されません。
「先頭から単語を検索」ボタンを押すと、検索フォームのノードタイトルの先頭を設定したり、ノード名の任意の位置を検索したりできます。
単語検索 「全体から検索」ボタン
キーボードを使って一致リストを指定する場合、「UP」と「DOWN」を押して選択行を移動し、「ENTER」を押すと、ドキュメントが選択したノードの行番号にジャンプします。
マウスを使っている場合は、リスト項目までスクロールして、クリックして選択します。

poseidon パーサーは、parseidTree を生成した後、ファイル(* .d / * .di)(PoseidonD)または(* .bas / * .bi)(poseidonFB)をロードしているときに、機能し始めます。
次に poseidon は、2番目のレイヤー(D_MODULEの最初の子レイヤー)で D_IMPORTノードを検索します。
次に、D_IMPORT ファイルをロードして、もう一度解析します。
ただし、効率化のため、このメイン D_MODULE の D_IMPORT ファイルを解析するだけで、他の D_IMPORTのD_IMPORT は解析せず、ソースとその他の parsedTree をメモリに入れます。

Dコンパイラのインポート・パスは、sc.ini / dmd.conf ファイルと、プロジェクトの「インポートパス」で定義されているため、PoseidonD(PoseidonFB のパーサー) はそれによってファイルを検索します。

FreeBASIC には、独自のインクルード・ルールがあります --
(1) ソースファイルのディレクトリからの相対パス
(2) 現在の作業ディレクトリからの相対パス
(3) -i コマンドライン・オプションで指定された追加ディレクトリからの相対パス
(4) FreeBASIC インストールのインクルードフォルダ

実際、D言語は object.d / di を実行します。PoseidonD は起動中にそれをロードして解析を試み、poseidonFB で FB_BuiltinFunctions.bi(set-tings フォルダー内)をロード・解析してキーワードのコールチップを取得します。

自動補完

ポセイドンは、3種類の自動補完をサポートしています:
(1)キーワード補完
(2)インクルード補完(インポート補完)
(3)コード補完

環境設定 - 構文解析:
含めるレベル
「キーワード自動補完を有効に」は、「構文解析を有効に」のオン/オフに関係なく機能します。
「環境設定」画面の「キーワード」タブに移動して、キーワードを編集することもできます。
(2)インクルード自動補完と(3)コード補完関連は、「構文解析を有効に」がオンの場合に機能します。
「インクルード自動補完」がオンでも、「構文解析」がオフだと、インクルード補完は機能しません。

「関数のパラメーターと種類を表示」の違いは次のとおりです:
表示

非表示

「自動補完リストは大文字小文字を無視」と「自動補完リストの選択で大文字小文字を区別しない」は、大文字と小文字の区別に関するものです。
2つのオプションは、他の言語(poseidonFB)のためと個人的な習慣です。

「自動補完リスト種類を表示」は:
表示 非表示
poseidon は、リストを並べ替え、重複するものを削除します。
このため、種類を指定した場合とそうでない場合で、表示結果が異なります。 (実際、異なるアイコンは、内容が違うことを示します)

「全てのメンバーを表示」は、プライベート・メンバーの表示/非表示を切替えます。
「オフ」の場合、ポセイドンは、メンバーが同位か、同じ parsedTree の範囲だけを確認します。

「裏スレッドでコード補完を有効に」が「オン」の場合、poseidon は2つのスレッドを作成し、裏処理で自動コンパイルとコールチップを実行します。
これにより、IDEアイドル待機を防ぎ、自動補完 / コールチップの結果を高速化しますが、バグがある場合もあります。
結果がおかしい場合やシステムが不安定な場合は「オフ」にしてください。

「関数のタイトルを表示」は、PoseidonFB ツールバーの右側にドキュメントのアクティブなブロックを表示します。
例えば、D_FUNCTION / D_CLASS / D_STRUCE などのように。
関数のタイトルを表示
「自動更新レベル」は、キー入力して parsedTree に追加するものを動的に解析します。
(1)無し = オフにします。
(2)軽く = 1行を解析します。
(3)全て = 1つのブロックを解析します。 (遅いです)
「概観を更新」が「オン」の場合、解析結果を更新して概観のツリーが変更されます。
「概観」は正確でないため、必要に応じて「再構文解析」を使ってドキュメントを再度解析してください。

したがって、poseidon を起動してコンパイラのパスを設定し、新しいファイルを作成し、コードを入力すると、他の設定なしで自動補完が使えます。
poseidon のパーサーは、最初の目標が parsedTree を生成するためのものであり、parsedTree はオートコンプリート/コールチップを使うためのものなので、パーサーはあまり正確ではありません。
if / while / for / foreach / foreach / switch ブロックがなければ、下の画像のように、概観を見ることができます。結果は : char[] x2 ですが、自動補完の動作には影響しません。
うてしけ

コールチップ

「構文解析を有効に」が「ON」の場合、機能します。
コールチップ
コールチップには、3つの非表示の色変更設定があります。editorSettings.ini で、[COLOR] ブロックを見つけて、3つの項目を編集します。
calltipFore
calltipBack
calltipHLT
割り当ては = R G B です。


手動自動補完:
単語を追加/削除しなくても、ESC キーを押すか、カーソルを移動して自動補完リストをキャンセルするか、 既定のショートカットである Ctrl + Q を押すと、リストやコールチップが再び表示されます。

定義に移動:
トップ定義に移動:
「構文解析を有効に」が「オン」の場合、変数/関数の宣言にジャンプできます。parsedTree が作成されているため、簡単に実行できます。
宣言の場所にジャンプした後、元の場所に戻るには、「ナビゲーション・キャッシュ」を使って前後を見ることができます。
ナビゲーション・キャッシュ
アイコンをクリックする以外に、ショートカットか、ALT +マウスの「左」/「右」クリックを使って実行することもできます。

含める階層:(poseidonFB)
このオプションは poseidonFB だけに存在します:

例えば、コードに「window9.bi」(Gui Library window9、https://sourceforge.net/projects/guiwindow9/)が含まれる場合、window9.bi には多くの *.bi が含まれ、異なる *.bi にはさらに *.bi も含まれます。
poseidonFB の parsedTrees は非常に大きくなり、コード補完を実行するためにすべてのノードを検索して比較する必要があるため、速度が遅くなります。このため、*.bi を何度も解析しないように「含める階層」オプションが存在します。

poseidonFB >= reversion 0.435 でいくつかの変更をしました。プロジェクト内のすべてのファイルは回避するためにレベル0 です。レベル= 1 のときに FILE-1 は同じプロジェクトでも FILE-3 を使用できません。
「包含レベル」= 1の場合、下の写真での包含ルールは、FILE-2 と FILE-1 は FILE-B の parseTree を表示できますが、FILE-3 は FILE-A のみを表示します。
うしてけ
 
目次に戻る↑

カスタム・ツール

ツール
電卓
PoseidonFB はカスタム・ツールを設定できます。カスタム・ツールは、ショートカット・キー(デフォルトはSHIFT + CTRL + F1 〜 F9)で起動します。
外部アプリケーションの呼び出しに加えて、poseidonFB は外部リンク・ライブラリ関数の呼び出しもサポートします。
いくつかの単純で固定されたルールを使って、poseidonFB の IUPフレームワーク・データ(scintilla を含む)に直接アクセスして、IUP 関数をカスタマイズしたり拡張したりできます。

カスタムツールを設定するには、メニューの [オプション] → [ツール] → [カスタム・ツール設定...] をクリックします。

設定できるツールの例:
 電卓:calc.exe
 エクスプローラ:Explorer
 ペイント:mspaint.exe
 メモ帳:notepad.exe
電卓は、「プログラマ」モードにしておくと、10進⇔16進の変換などできて便利です。

(1) External Application:

まず、外部アプリケーションを呼び出します。

1.最初に、[カスタム・ツール設定...] 画面の [┼ (追加)] ボタンをクリックします。
 
名前 2.すると、名前付けウィンドウがポップアップします。ここに、カスタムツール項目の名前を入力します。
(ここでは、4 画面ファイラー Q-Dir をデモとして使います)。
(http://www.softwareok.com/?Download=Q-Dir)

3.Q-Dir の項目が、[カスタム・ツール設定...] 画面に追加されます。
Q-Dir 項目をクリックすると、「ツール」と「引数」の青いビットが空白になっていることがわかります。
ここで、「ツール」にカスタム・プログラムのパスを直接入力できます。
あるいは、右側の[開く]ボタンをクリックして、カスタム・プログラムのパスとアプリケーションを選択することもできます。

注意:
PoseidonFB に登録できるカスタムツールの数は、9 に制限されています。
 
ツール追加 4.[開く]を選択します。

5.「ツール」列に関連情報が入力されていることがわかります。「引数」は、後で説明する実行プログラムに渡されるパラメータです。
 
ツール・メニュー 6.[OK]をクリックして[ツール]メニューに戻ると、「Q-Dir」が追加されていることがわかります。
ここでツールアプリを名をクリックして、起動させて使うことができます。

7.次に、「引数」フィールドのパラメータを説明します。
アプリケーションに固定パラメータを設定するだけでなく、poseidonFB のファイル名やプロジェクト名をアプリケーションに渡すために、特殊文字を設定することもできます。

特殊文字の定義は次のとおりです。
%s% = Selected Text
%f% = Active File Fullpath
%fn% = Active File Name
%fdir% = Active File Dir
%pn% = Active Prj Name
%p% = Active Prj Files
%pdir% = Active Prj Dir

特殊文字を含むヒントは、「引数」の名前の上にマウスカーソルを置くことで表示できます。渡辺注:うまく表示されない?
 
エクスプローラ 右は、Windows エクスプローラーを呼び出して、現在の poseidonFB 編集ファイルが配置されているディレクトリを開く例です。
外部ツールの選択肢からエクスプローラを実行すると、ファイルマネージャが開き、ディレクトリが現在のファイル・ディレクトリで表示されます。
 
目次に戻る↑

(2) Plugin

PoseidonFB は D1.0 で記述されていますが、PoseidonFB は呼び出し用のダイナミック・リンクファイルなので、*.dll/*.so を呼び出すことで、カスタムツールを実行できます。
プラグインは、他のプログラミング言語で記述できます。
後で FreeBASIC で記述した簡単な例があります。

プラグインで IUP を使ってウィンドウ・プログラミングを実現できます。
IUP を使って poseidonFB の既存のハンドルを取得し、poseidonFB を拡張することもできます。

設定手順は外部アプリケーションと同じです。
poseidonFB は、補助ファイル名 が dll/so であることを確認することで動的ロードに入ります。


プラグインの簡単なルールは次のとおりです。
1.プログラムのエントリポイントは poseidonFB_Dll_Go()。
プラグインを起動すると、poseidonFB がこの関数を直接呼び出します。
2.ダイナミックロードを使うと、ダイナミック・リンクファイルを他の場所に配置できます。poseidonFB またはシステムと同じディレクトリにある必要はありません。
3.IUP を使って、poseidonFB がすでに開始されているため、IUP を再起動せずにプラグインを記述します。
4.作成する......... ^^

目次に戻る↑

IUP:

 IupGetHandle 関数を使う
IupGetHandle( "POSEIDONFB_MAIN_DIALOG" ), to get poseidonFB main dialog Ihandle

 IupGetDialogChild 関数を使う
NAME = POSEIDONFB_MAIN_TABS, to get poseidonFB's main document IupFlatTabs Ihandle
NAME = POSEIDONFB_SUB_TABS, to get poseidonFB's sub(split) document IupFlatTabs Ihandle
NAME = POSEIDONFB_LEFT_TABS, to get poseidonFB's left( Project, Outline ) IupTabs Ihandle
NAME = POSEIDONFB_BOTTOM_TABS, to get poseidonFB's bottom( Message, Search ) IupFlatTabs(Win) / IupTabs(Lin) Ihandle
NAME = POSEIDONFB_TOOLBAR, to get poseidonFB's toolbar Ihandle
NAME = POSEIDONFB_TOOLBAR_New, POSEIDONFB_TOOLBAR_Open, POSEIDONFB_TOOLBAR_Save, POSEIDONFB_TOOLBAR_SaveAll, POSEIDONFB_TOOLBAR_Undo, POSEIDONFB_TOOLBAR_Redo, POSEIDONFB_TOOLBAR_ClearUndoBuffer, POSEIDONFB_TOOLBAR_Undo, POSEIDONFB_TOOLBAR_Redo, POSEIDONFB_TOOLBAR_Cut, POSEIDONFB_TOOLBAR_Copy, POSEIDONFB_TOOLBAR_Paste, POSEIDONFB_TOOLBAR_BackwardNav, POSEIDONFB_TOOLBAR_ForwardNav, POSEIDONFB_TOOLBAR_ClearNav, POSEIDONFB_TOOLBAR_Mark, POSEIDONFB_TOOLBAR_MarkPrev, POSEIDONFB_TOOLBAR_MarkNext, POSEIDONFB_TOOLBAR_MarkClear, POSEIDONFB_TOOLBAR_Compile, POSEIDONFB_TOOLBAR_CompileRun, POSEIDONFB_TOOLBAR_Run, POSEIDONFB_TOOLBAR_Build, POSEIDONFB_TOOLBAR_ReBuild, POSEIDONFB_TOOLBAR_QuickRun, POSEIDONFB_TOOLBAR_Gui, POSEIDONFB_TOOLBAR_Bit, POSEIDONFB_TOOLBAR_FunctionList, to get poseidonFB's toolbar buttons
NAME = POSEIDONFB_COMMANDLINE, the Ihandle of command receiver

poseidonFB に指示を送る:
IupSetAttribute( commandHandle, "VALUE", commandtxt )

commandtxt = NewFile, OpenFile, SaveFile, SaveAs, CloseFile, NewProject, OpenProject, CloseProject, CloseAllProject, SaveProject, SaveAllProject, ProjectProperties, Compile, CompileRun, Run, Build, ReBuild, QuickRun, Comment, UnComment
目次に戻る↑

Plugin 例:

プラグイン
#include once "IUP/iup.bi"
#include once "IUP/iup_scintilla.bi"

'compile with -dll option
extern "C"

   declare sub poseidonFB_Dll_Go alias "poseidonFB_Dll_Go" ()

   dim shared as Ihandle ptr THIS_MAINDIALOG_HANDLE
   dim shared as Ihandle ptr POSEIDONFB_HANDLE
   
   ' IUP Callback of This Dynamic Library (IUP)
   ' Using "IupGetHandle( "POSEIDONFB_MAIN_DIALOG" )" get poseidonFB main dialog
   function case_ACTION cdecl( ih as Ihandle ptr ) as integer
      
      if( poseidonfb_handle <> 0 ) then
      
         dim as Ihandle ptr _MaintabsHandle = IupGetDialogChild( POSEIDONFB_HANDLE, "POSEIDONFB_MAIN_TABS" )
         if( _MaintabsHandle <> 0 ) then
            
            dim as Ihandle ptr sci = cast( Ihandle ptr, IupGetAttribute( _MaintabsHandle, "VALUE_HANDLE" ) )
            if( sci <> 0 ) then

               dim as zstring ptr   filestring = IupGetAttribute( sci, "VALUE" ), _name =  IupGetAttribute( ih, strptr( "NAME" ) )
               dim as string      document
               
               if( _name[0] = "UPPERCASE" ) then document = ucase( filestring[0] ) else document = lcase( filestring[0] )
               IupSetAttribute( sci, "VALUE", document )
            end if
         end if
      end if
      
      return IUP_DEFAULT
      
   end function

   ' newdoc_ACTION & closedoc_ACTION not work in Linux yet...
   function newdoc_ACTION cdecl( ih as Ihandle ptr ) as integer

      #if defined(__fb_win32__) 
      
         if( POSEIDONFB_HANDLE <> 0 ) then

            IupSetFocus( POSEIDONFB_HANDLE )
            IupSetGlobal( "KEY", str( iup_XkeyCtrl( 110 ) ) )
         end if
      #else
      
         if( POSEIDONFB_HANDLE <> 0 ) then
         
            dim as Ihandle ptr _command = IupGetDialogChild( POSEIDONFB_HANDLE, "POSEIDONFB_COMMANDLINE" )
            /'
            We can send command message by using POSEIDONFB_COMMANDLINE
            POSEIDONFB_COMMANDLINE is an iupScintilla object, at first we set our command text, ex: IupSetAttribute( _command, "VALUE", "NewFile" ),
            then auto trigger by SAVEPOINT_CB callback function to run the poseidonFB internal fuction.
            
            Now the command text include:
            NewFile, OpenFile, SaveFile, SaveAs, CloseFile, ...
            '/
            if( _command <> 0 ) then IupSetAttribute( _command, "VALUE", "NewFile" )   ' Set POSEIDONFB_COMMANDLINE command text the trigger
         end if
      #endif
      
      return IUP_DEFAULT
      
   end function
   
   function savedoc_ACTION cdecl( ih as Ihandle ptr ) as integer

      if( POSEIDONFB_HANDLE <> 0 ) then
      
         dim as Ihandle ptr _MaintabsHandle = IupGetDialogChild( POSEIDONFB_HANDLE, "POSEIDONFB_MAIN_TABS" )
         if( _MaintabsHandle <> 0 ) then
            
            dim as Ihandle ptr sci = cast( Ihandle ptr, IupGetAttribute( _MaintabsHandle, "VALUE_HANDLE" ) ) 'Get Active Doc Tab(iupscintilla handle)
            if( sci <> 0 ) then

               dim as Ihandle ptr _command = IupGetDialogChild( POSEIDONFB_HANDLE, "POSEIDONFB_COMMANDLINE" )
               if( _command <> 0 ) then IupSetAttribute( _command, "VALUE", "SaveFile" )
            end if
         end if
      end if

      return IUP_DEFAULT
      
   end function   
   
   
   function closedoc_ACTION cdecl( ih as Ihandle ptr ) as integer
      
      if( POSEIDONFB_HANDLE <> 0 ) then
      
         dim as Ihandle ptr _MaintabsHandle = IupGetDialogChild( POSEIDONFB_HANDLE, "POSEIDONFB_MAIN_TABS" )
         if( _MaintabsHandle <> 0 ) then
            
            dim as Ihandle ptr sci = cast( Ihandle ptr, IupGetAttribute( _MaintabsHandle, "VALUE_HANDLE" ) ) 'Get Active Doc Tab(iupscintilla handle)
            if( sci <> 0 ) then

               dim as Ihandle ptr _command = IupGetDialogChild( POSEIDONFB_HANDLE, "POSEIDONFB_COMMANDLINE" )
               if( _command <> 0 ) then IupSetAttribute( _command, "VALUE", "CloseFile" )
            end if
         end if
      end if
      
      return IUP_DEFAULT
      
   end function
   
   function annoButton_ACTION cdecl( ih as Ihandle ptr ) as integer
      
      if( poseidonfb_handle <> 0 ) then
      
         dim as Ihandle ptr _MaintabsHandle = IupGetDialogChild( POSEIDONFB_HANDLE, "POSEIDONFB_MAIN_TABS" )
         if( _MaintabsHandle <> 0 ) then
            
            dim as Ihandle ptr sci = cast( Ihandle ptr, IupGetAttribute( _MaintabsHandle, "VALUE_HANDLE" ) ) 'Get Active Doc Tab(iupscintilla handle)
            if( sci <> 0 ) then

               ' Get annoText Text
               dim as Ihandle ptr _annoTextHandle = IupGetDialogChild( THIS_MAINDIALOG_HANDLE, "ANNOTEXT" )
               if( _annoTextHandle <> 0 ) then
                  
                  IupSetFocus( sci )
                  dim as integer _currentPos = cast(integer, IupScintillaSendMessage( sci, 2008, 0, 0 ) ) ' SCI_GETCURRENTPOS = 2008
                  dim as integer _currentLin = cast(integer, IupScintillaSendMessage( sci, 2166, _currentPos, 0 ) ) ' SCI_LINEFROMPOSITION = 2166
                  
                  if( IupGetInt( _annoTextHandle, "COUNT" ) > 0 ) then 
                     
                     IupSetIntId( sci, "ANNOTATIONSTYLE", _currentLin, 41 ) ' Use ANNOTATIONSTYLE 41 of poseidonFB
                     IupSetAttributeId( sci, "ANNOTATIONTEXT", _currentLin, IupGetAttribute( _annoTextHandle, "VALUE" ) )
                     IupSetAttribute( sci, "ANNOTATIONVISIBLE", "BOXED" )
                  end if
               end if
            end if
         end if
      end if
      
      return IUP_DEFAULT
      
   end function
   
   
   

   ' Main 
   sub poseidonFB_Dll_Go alias "poseidonFB_Dll_Go"() export
   
      ' The main IupOpen() is already ran by poseidonFB, no need anymore
      
      POSEIDONFB_HANDLE = IupGetHandle( "POSEIDONFB_MAIN_DIALOG" ) ' Get poseidonFB main dialog handle(IUP)
      if( POSEIDONFB_HANDLE <> 0 ) then
         
         ' Check the THIS_MAINDIALOG_HANDLE is already created......
         if( THIS_MAINDIALOG_HANDLE = 0 ) then
         
            THIS_MAINDIALOG_HANDLE = IupDialog( 0 )
            IupSetAttributes( THIS_MAINDIALOG_HANDLE, "TITLE=Control_Panel,SIZE=NULL,PARENTDIALOG=POSEIDONFB_MAIN_DIALOG,RESIZE=NO,MAXBOX=NO,MINBOX=NO" )
            
            dim as ihandle ptr uppercase, lowercase, newdoc, closedoc, savedoc, annoText, annoButton
            
            uppercase = IupButton( "Upper Case", 0 )
            IupSetAttributes( uppercase, "NAME=UPPERCASE" )
            IupSetCallback( uppercase, "ACTION", cast( Icallback, @case_ACTION ) )
            
            lowercase = IupButton( "Lower Case", 0 )
            IupSetAttributes( lowercase, "NAME=LOWERCASE" )
            IupSetCallback( lowercase, "ACTION", cast( Icallback, @case_ACTION ) )
            
            newdoc = IupButton( "New File", 0 )
            IupSetAttributes( newdoc, "NAME=NEWDOC" )
            IupSetCallback( newdoc, "ACTION", cast( Icallback, @newdoc_ACTION ) )
            
            savedoc = IupButton( "Save File", 0 )
            IupSetAttributes( savedoc, "NAME=SAVEDOC" )
            IupSetCallback( savedoc, "ACTION", cast( Icallback, @savedoc_ACTION ) )            
            
            closedoc = IupButton( "Close File", 0 )
            IupSetAttributes( closedoc, "NAME=CLOSEDOC" )
            IupSetCallback( closedoc, "ACTION", cast( Icallback, @closedoc_ACTION ) )
            
            annoText = IupText( 0 )
            IupSetAttributes( annoText, "SIZE=-1x50,MULTILINE=YES,NAME=ANNOTEXT" )
            annoButton = IupButton( "Paste ANNOTATION", 0 )
            IupSetAttributes( annoButton, "SIZE=-1x16,NAME=ANNOBUTTON" )
            IupSetCallback( annoButton, "ACTION", cast( Icallback, @annoButton_ACTION ) )

            ' Layout
            dim as Ihandle ptr hbox0 = IupHbox( uppercase, lowercase, newdoc, savedoc, closedoc, 0 )
            dim as Ihandle ptr vbox0 = IupVbox( hbox0, annoText, annoButton, 0 )
            IupSetAttributes( vbox0, "EXPANDCHILDREN=YES" )

            ' Append to main dialog
            IupAppend( THIS_MAINDIALOG_HANDLE, vbox0 )
            

            IupShowXY( THIS_MAINDIALOG_HANDLE, IUP_RIGHT, IUP_CENTER )
         else

            IupShow( THIS_MAINDIALOG_HANDLE )
         end if
      
      end if
      
   end sub
   
end extern

目次に戻る↑


デバッグ

デバッグの経験があまりなくて申し訳ありませんが、最善を尽くして、画面でどのように機能するか説明します。

poseidonFB は gdb を使ってデバッグします。公式の freeBASIC のパックには、32ビットの gdb も64ビットも含まれます(64ビットのプログラムをデバッグするには、64ビットのデバッガが必要です)。
https://www.freebasic.net/forum/viewtopic.php?f=6&t=27859 からダウンロードして、64ビットの gdb をインストールします。

デバッガパス 以下の条件でテストして動作しました:
(1) freeBASIC 1.07.1, Win32 with GNU gdb (GDB) 7.6.1
(2) freeBASIC 1.07.1, Win64 with GNU gdb (GDB) 9.1 ( srvaldez built )
(3) freeBASIC 1.07.1, linux mint 18 64bit with GNU gdb (Ubuntu 7.11-0ubuntu1) 7.11

[環境設定]→ [コンパイラ] で、デバッガパスを設定します。
Win32 の場合:\FreeBASIC\bin\win32\gdb.exe

Linuxでは、「gdb」と入力するだけです(最初にインストールが必要です)
(rev.439以降、x64 gdb パスを設定できます)

アプリケーションにデバッグ情報を追加するには、-g オプションを使ってソースをコンパイルする必要があります。
すでにプロジェクトを作成(使用)している場合は、メニューから、 [デバッグ]→ [デバッグ+プロジェクト構築]を使います。poseidon は、プロジェクトのすべての設定を適用し、-g オプションを追加します。

-g オプションでソースをコンパイルした後、[デバッグ実行]をクリックしてデバッグを開始します。
poseidon は、gdb を別のスレッドで実行するため、poseidon を操作してブレーク・ポイントを設定したり、引数を設定したりできます。

Left:
左

Right:
右

中止点(ブレークポイント):
中止点を設定する 2 つの方法:
1. 余白で CTRL + left-CLICK を使って直接設定
けうて

2. 余白で右クリックして、ポップアップ・メニューから「中止点」を選択
ブレークポイント

[実行/続行]を押すと中止点まで実行します。
アプリケーションに引数を送るる必要がある場合は、[実行/続行]ボタンを右クリックします。
[実行/続行]ボタン

余白には、デバッガーが実行されている実際の行が、赤い矢印/赤い下線付きで表示され、アクティブなフレームも表示されます。
デバッガー実行中

デバッグ・パネルの右側では、ローカル変数リストが自動更新されます。
ローカル変数リスト

ツリー・ノードが {...} の場合、ダブル・クリックで展開します。
ダブル・クリックで展開

ツール・バー:
ツール・バー
左から右に:
(1) 実行/継続
(2) 中断
(3) ステップ
(4) 次
(5) 戻る
(6) 〜まで
(7) コンソール画面を消去
(8) デバッグスレッドを終了

コマンド・ライン: コマンドを gdb に直接送ります。

「ステップ」ボタンを押してデバッグを段階的に実行すると、ローカル変数の値が更新され、変更された変数は で色分けされます。
ローカル変数の値が更新

ノードを右クリックして、@address / *Value を表示することもできます:
ノードを右クリック

Value を表示

ノードの葉をダブル・クリックして、値を設定できます。
ノードの葉の値を設定

監視リスト:
変数を監視リストに追加するには、いくつかの方法があります。
最初の方法は[追加]ボタンを押すことです。するとダイアログがポップアップし、変数名にキーを入力します。
変数ダイアログ

2番目の方法は、ドキュメントの単語を選択し、右クリックして[監視リストに追加]をクリックすると、ダイアログに選択した単語がポップアップ表示されます。
監視リストに追加 ポップアップ表示

3番目の方法は、変数パネルからです(「右矢印」ボタンを使います)。

監視リストは、変数の @address / *Value を表示することもサポートしており、poseidon は新しい値を監視リストに追加するかどうかを尋ねます。
変数パネルで「右矢印」ボタン

フレームパネル:

このパネルは、機能しているフレームを表示します。青色の単語(選択ではない)がアクティブなフレームです。
ダブルクリックしてフレームを変更できます。もちろん、監視リストと変数パネルも更新されます。
フレームパネル

目次に戻る↑


コンパイラ・オプション

poseidonFB はいくつかの方法で、コンパイラ・オプションを設定できます。

(1).あつらえコンパイラ・オプション

あつらえ

IDEのステータスバーの左下にあるアイコン(影像2)を右クリックします。

初めて使うとき、ポップアップ画面には「無し」と「構成」という項目が表示されます。
しかし、すでに何か項目を設定していれば、項目リストが表示されます。

または:

'無し' = 'あつらえコンパイラ・オプション' を null に設定すると、ステータスバーにはタグが表示されず、コンパイラにオプションは渡されません。

'構成' = 'あつらえコンパイラ・オプション...' 編集ダイアログに入ります。

分離線の上の 'その他' = 以前に作成したタグで、クリックして選択すると、ステータスバーにタグが表示され、コンパイルに 使うためにオプションがコンパイラに渡されます。

最初に使うときは、「構成...」をクリックして、「あつらえコンパイラ・オプション...」編集画面を開きます。

 
図_x0020_42

'あつらえコンパイラ・オプション... ' 編集画面:

 
図_x0020_44

「+追加」をクリックして新しいタグを作成します。例: 'DEFAULT'を作成

 
図_x0020_45

ダイアログのリストに「DEFAULT」という名前の新しい項目が追加され、コンパイラ・オプションを設定して「適用」をクリックします。

 
影像21

小さなメッセージボックスに、保存OKが表示されます。

注意:
「OK」をクリックしないと、設定は保存されません。

これで、ポップアップウィンドウで、保存した設定を選択して呼び出すことができます。これはコンパイル中にコンパイラに渡されます

 
図_x0020_46

設定を選択する簡単な方法:
適用後、リストの項目をダブルクリックすると、新しいタグがステータスバーに表示されます。

注意:
まだ項目が適用されていないときは、この方法は使えません。

 

(2).プロジェクト・コンパイルオプション

これはプロジェクト専用で、「プロジェクト構築」でのみ動作します。

新しいプロジェクトを作成するときに設定するか、「プロパティ ...」を使って編集します。

注意:
このオプションは、「あつらえコンパイラ・オプション」の選択を無視します。

しかし、 'プロジェクト・コンパイルオプション' = nullの場合、 'あつらえコンパイラ・オプション'が使われます。

 

(3).'Compiler Options / EXEArguments'

影像11

これは隠れた項目で、非常に便利です。

ツールバーの、コンパイル/構築/実行 アイコンを右クリックします。

 
_x0000_i1028

「コンパイラ・オプション/ EXE引数」画面が表示され、コンパイラに渡すコンパイル・オプションをキー入力したり、EXEに渡す引数を入力します。
そして「クイック実行」ボタンを右クリックします。

この画面は 'あつらえコンパイラ・オプション'と同じ(表題だけ違う...)ですが、新しいオプションを 'コンパイル・オプション' 編集ボックスに直接入力できます。
また、リストの項目をクリックすることもできます。
'コンパイル・オプション' 編集ボックスには、以前の設定が表示されます。

コンパイル/構築/実行するために、[実行]をクリックすると、コンパイラにオプションを渡します。

null(何もなし)オプション/引数を、コンパイラ/ EXEに送りたい場合は、編集ボックスは空のままにしておきます。

'コンパイル・オプション'と '実行引数'は、編集ボックスでもコンボボックスになっています。

これは常に以前の操作でのオプション(手作業でキー入力したものも、保存した項目も)を保存し、それを上位項目に保持 するので、同じオプションを使うときに便利です。

コンボボックスは、デフォルトで最大15個の異なる項目を保存できます。この数は、poseidonFBのeditorSettings.iniを編集して最大値を変更できます。これらはファイルの最後の方にあります:

[recentOptions]=

max=15

[recentArgs]=

max=15

例: -exxオプションを指定して、'Hello World' を即実行します。


 
上記の例では、「あつらえコンパイラ・オプション」は「DEFAULT」に設定されていますが、その設定はコンパイラには渡されません。

「コンパイラ・オプション/実行引数」と「あつらえコンパイラ・オプション」は排他で、一度にできるのは一方のみです。

注意:
'コンパイラ・オプション/実行引数'はコンパイラ・オプションを素早く設定するためのものです。
'プロジェクト構築'を右クリックすると、オプションは 'プロジェクト・コンパイラ・オプション'でコンパイラに送られます。

 

(4).'Console / GUI'

影像18

コンパイラに追加のオプションを送ると、コンパイラ・オプションと組み合わせることができます。

’Console’ = オプションを渡しません。 (‘-s console’と同じため )

’GUI’ = コンパイラに‘-sgui’を渡します。

 

(5).’32 / 64 bit’

影像19

コンパイラ・オプションではありません。32/64ビットコンパイラを素早く切り替えるために設計しました。
32/64ビット・コンパイラのパス設定は、「オプション」→「環境設定」の、コンパイラ画面にあります。

パスを登録
目次に戻る↑