掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     C++のコード生成で、インクルードの順序を変更したい


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
sugimoto
投稿日時: 2008-7-14 14:59
EA Administrator
投稿: 1895

C++のコード生成で、インクルードの順序を変更したい

○ご質問

C++コード生成で、***.cppファイルに出力されるヘッダファイルの
インクルード順序を変更したいと考えています。

デフォルトのコード生成テンプレートを利用した場合、フィールド置換マクロ
%fileHeaders% が適用されて、以下の順序でファイルに出力されています。

#include "AAA.h" ← AAA.cppのヘッダーファイルが自動でインクルード
#include "BBB.h" ← ソースコードの生成ダイアログで"インポートおよびヘッダ"
            欄の下段に入力した内容

このインクルード順序を、以下のように逆にするにはテンプレートを
どのようにカスタマイズすればよいですか?
#include "BBB.h"
#include "AAA.h"


○回答

以下のカスタマイズにより、対応可能です。

1) フィールド置換マクロのclassImportsにて、"インポートおよびヘッダ"
  の情報を取得し、こちらを先に出力
2) fileHeaders にて現在出力している情報を出力
3) 1), 2) にて、重複している内容は出力しないようにする

ただし、現状、classImports では、"インポートおよびヘッダ"の上段
(.h に出力される情報)のみが返却され、下段の情報は取得できないことが
判明しました。

こちらは、下段の情報も取得できるよう、機能改善要望として検討いたします。

このような状況ですので、1) につきましては、アドインを作成し
"インポートおよびヘッダ"の下段の情報を取得する必要があります。

弊社にて、このアドインを作成し、以下のようにコード生成テンプレートを
カスタマイズしたところ、順番を逆に出力できることは確認済みです。

1. アドインを登録※
2. コード生成テンプレート「File Impl」を以下のようにカスタマイズする
 [現在]
 %ImportSectionImpl%
 [変更後]
 $header=%ImportSectionImpl%
 %REMOVE_DUPLICATES($header,"\n")%

3.コード生成テンプレート「Import Section Impl」を以下のようにカスタマイズする
 [現在]
 %fileHeaders%
 [変更後]
 %EXEC_ADD_IN("インポートとヘッダ下段情報取得","GetCppHeader",classGUID)%
 %fileHeaders%

※"インポートおよびヘッダ"の下段の情報を取得するアドインの利用を
 ご希望の方は、弊社サポートまでご連絡ください。


○ご報告

上記カスタマイズにより、ご希望通りの出力を得ることができたとの、
ご連絡をいただいております。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ