掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     ソースコード自動生成で、関係するクラスを#includeする際ヘッダのパスを通したい


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2007-7-11 17:33
EA Administrator
投稿: 1895

ソースコード自動生成で、関係するクラスを#includeする際ヘッダのパスを通したい

○ご質問

現状、ソースコード自動生成されるヘッダのパスが通っていません。
使用言語はC++です。

#include "../Folder/IHeader.h"としたい場合でも、
#include "IHeader.h"と生成されてしまいます。

カスタマイズする方法はありますか?


○回答

コード生成テンプレートを編集することで、関連するクラスの
パスを出力することは可能です。
(こちらはEA7.0からの機能になります。)

なお、ヘッダのパスが生成される条件として、相手側のクラスのソース
コードが生成されている必要があります。生成されていないとパスの位置
が分からないため、相対パスの情報を出力できません。


以下のテンプレートを新規作成、変更してください。

1) 新規作成
 対象の種類がImportのテンプレートを新規作成し、importRelativeFilePath
 を利用します。

 [対応例]
 $path=%importRelativeFilePath%
 $en="\\"
 $en2=%LEFT($en,1)%
 #include "%REPLACE($path,$en2,"/")%"

 ※パスを"/"で表現したい場合は、下位3行が必要です。

2) 変更
 Import Section テンプレートを以下のように変更してください。
 (1)で作成したテンプレート名を"Import__include"としています。)

 [対応例]
 %classImports%
 $imports += %list="Import__include" @separator="\n" importInFile=="F"%
 %REMOVE_DUPLICATES($imports, "\n")%
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » ソースコード自動生成で、関係するクラスを#includeする際ヘッダのパスを通したい sugimoto 2007-7-11 17:33